赞
踩
一、类定义
这里举例说明一下:
人就是一种类,人有名字,身高,体重等属性,不同人这些属性都是不一样的,除此之外,人还有很多方法(功能),例如,思考、跑步、睡觉等等。
在Python中,类表示具有相同属性和方法的对象的集合。在使用类时,需要先定义类,然后再创建类的实例,通过类的实例就可以访问类中的属性和方法了。
二、创建类
格式:
class Animal:
def __init__(self):#类的方法和普通的方法唯一的区别是:类中定义的方法必须至少带一个self参数,而普通的方法中可以没有任何参数
print("类属性")
def show(self):
print("类方法")
举例说明:
class MyClass: #类的首字母要大写
def __init__(self,x): # x为类的属性变量
self.x = x #定义类的属性
三、__init__()
函数
类有一个名为 __init__()
的初始化函数,用来定义类的属性,它将类的属性赋值给对象,或者授予对象时需要执行的其他操作,它始终在启动类时执行。
class MyClass:
def __init__(self,x): # x为类的属性变量
self.x = x #定义类的属性
在 Python 中,如果你定义一个类但没有定义任何类属性,这也是完全合法的。类属性是与类本身关联的变量,而不是与类的实例关联的变量。如果你的类不需要任何类属性,你可以直接定义类的方法,而不用去定义__init__()
的初始化函数
如:
class MyClass:
def my_method(self,arg3,arg4): #定义类的方法
print(self.arg3, self.arg4)
# 创建类的实例
my_object = MyClass() #实例化一个对象,继承类的属性
# 调用类中的方法
my_object.my_method(self.arg3对应的实参3,self.arg4对应的实参4) #类实例关联的变量实参
四、self 参数
self 参数是对类的当前实例的引用,用于访问属于该类的变量。也即self表示创建的类实例本身,而不是类本身。
它的名称是约定俗成的,为了规范和便于读者理解,推荐使用self,也可以命名为其它的而不被命名为 self。
它必须是类中任意函数的首个参数。
self只有在类的方法中才会有,其他函数或方法是不必带self的。类的方法和普通的方法唯一的区别是:类中定义的方法必须至少带一个self参数,而普通的方法中可以没有任何参数
如:使用myself替换self
class MyClass:
def __init__(myself,x):
myself.x = x
五、给类实例化一个对象
class MyClass:
def __init__(self,x):
self.x = x
p1 = MyClass(7)
修改对象属性
p1.x = 40
六、pass 语句
类定义不能为空,但是因为某种原因写了无内容的类定义语句,可使用 pass 语句来避免报错。
class Person:
pass
七、类的继承
继承允许我们定义一个类继承另一个类的所有方法和属性。
语法格式:
class 子类名(父类名):
类的属性
类的方法
举例说明:
class Animal:
def __init__(self):
print("父类属性")
def show(self):
print("父类方法")
class Fish(Animal):
def __init__(self): #当子类添加 __init__() 函数时,子类将不再继承父的 __init__() 函数
print("子类属性")
def run(self):
print("子类方法")
fish = Fish()
fish.run() #子类方法
fish.show() #父类方法
输出:
子类属性
子类方法
父类方法
八、怎样调用类中的方法
在 Python 中,可以使用类名加点的方式调用类中的方法。具体示例如下:
class MyClass:
def __init__(self, arg1, arg2): #定义类的属性
self.arg1 = arg1
self.arg2 = arg2
def my_method(self,arg3,arg4): #定义类的方法
print(self.arg3, self.arg4)
# 创建类的实例
my_object = MyClass(self.arg1对应的实参1', 'self.arg2对应的实参2) #实例化一个对象,它拥有类的属性arg1,arg2,注意类属性是与类本身关联的变量,而不是与类的实例关联的变量。
# 类实例调用类中的方法
my_object.my_method(self.arg3对应的实参3,self.arg4对应的实参4) #实参3,实参4为类实例关联的变量实参
在上述代码中,首先定义了一个名为MyClass的类,它包含一个构造函数__init__和一个名为my_method的方法。然后,创建了一个MyClass的实例my_object,并使用实例名加点的方式调用了类中的my_method方法
demo1:类有属性
#coding=utf-8
class Aclass:
def __init__(self,x,y):
self.x=x
self.y=y
def minus1(self,a,b):
print(a - b)
my_result = Aclass(2,1) #实例my_result拥有类的属性2、1
my_result.minus1(5,1)
输出:4
demo2:类没有属性
#coding=utf-8
class Aclass:
def minus1(self,a,b):
print(a - b)
my_result = Aclass()
my_result.minus1(5,1)
输出:4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。