- 实例属性
- 实例方法
- 类对象
- 类属性
- 类方法
- 析构函数__del__和垃圾回收机制
- __call__方法和可调用对象
实例属性
实例属性是从属于实例对象的属性,也称为实例变量。
1.在——init——方法中通过
self.实例属性名 = 初始值
来进行定义。
2.在本类的其他实例方法张,也通过self进行访问
self.实例属性名
3.创建实例对象后,通过实例对象访问:
obj01 = 类名()
obj.实例属性名 = 值
在通过调用类名构造函数时,内存空间中会产生一个新的对象,并包含所有属性。并且可以添加,但是在创建另一个函数时,属性依然不会变。
实例方法
从属于实例对象,同生共死。
定义方法需要有self,第一个参数必须为self,指的是当前的实例对象。
调用实例方法时,不需要也不能给self传参,self由解释器自动传参。
类对象
解释器执行class语句时,就会创建一个类对象。
class Student(): pass print(type(Student)) print(id(Student)) Stu2 = Student s1 = Stu2() print(s1)
在这里Student就相当于一个模具,可以用它来创造很多饼干。可以把Student给Stu2。
类属性
类属性从属于类对象。可以被所有实例对象共享。
class Student():
company = "wbl" #类属性
count = 0 #类属性
def __init__(self,name,score):
self.name = name #实例属性
self.score = score #实例属性
Student.count = Student.count + 1
def say_score(self):
print("我的公司是:",Student.company)
print(self.name"的分数是:",self.score)
s1 = Student("张三",80)
s1.say_score()
print("一共创建{0}个Student对象".format(Student.count))
class使用时,解释器会创建一个模具对象(类对象),然后创建了两个类属性company和count。say_score也会被加载到类对象里。s1 = Student()时,就会产生一个新的对象,里面有两个实例属性和一个实例方法。新的对象里面的实例方法会指向类对象里的方法。
类方法
类方法通过装饰器@classmethod 来定义,格式如下:
@classmethod
def 类方法名(cls[ , 形参列表]):
函数体
创建一个新的对象时,类方法不会被创建在新的对象中。
静态方法
就是一个普通的,和类对象无关的方法,只不过放在了类的名字空间里,需要通过类来调用。
类方法和静态方法中不能调用实例对象,因为在模具中,但是饼干还没有被建造,所以self还没有存在。
析构函数__del__和垃圾回收机制
用于对象被销毁时所需的操作。
当对象没有被引用时,由垃圾回收器调用__del__方法。
__call__方法和可调用对象
定义了call方法的对象,成为“可调用对象”,即该对象可以像函数一样被调用。



