今天看了《Python编程从入门到实战》一章中的一些知识点,对构造函数、析构函数、类变量、实例变量的理解进行一下 总结:
1、构造函数:__init__(self,name,age,sex), 这个方法就是构造函数,在实例化的时候自动调用。所有如果这个函数内有打印的方法,当kate实例出来的时候会打印里面的信息。
__init__方法的第一个参数永远都是self,表示创建实例本身,在__init__方法内部,可以把各种属性绑定到self,因为self指向创建的实例本身。
有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去。
2、析构函数:__del__(self), 这个方法就是析构函数,是在实例被销毁时自动调用的。
3、类变量: country = 'China' , 类变量不需要实例,可以直接使用, 如line 14
4、实例变量: = name, 这种形式就是实例变量,需要实例化后才能使用, 如 line15就会报错,需要实例化line16的kate, 才能使用name, age, sex
可以自由地给一个实例变量绑定属性,比如,给实例kate绑定一个language属性。
kate.language = '中文'
print(kate.language) #中文和普通函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别。比如school函数只需要传city就可以了。
kate.school('北京') #凯特在北京上学下面是具体的代码段
class Person(object):
country = 'China' #类变量,不需要实例化,可以直接用
def __init__(self,name,age,sex):#构造函数,实例化的使用自动调用
= name #实例变量,必须实例化之后才能用,也叫成员变量
self.age = age
self.sex =sex
def say_my_country(self):
print(self.country)#类变量可以在类里作为属性使用
def school(self,city):
self.city = city
print('%s在%s上学' %(,self.city))
def __del__(self):#析构函数,实例销毁的时候自动调用
print('实例销毁的时候自动调用')
print(Person.country)#类变量,不需要实例化,可以直接用
#print()#实例变量,必须实例化之后才能用,AttributeError: type object 'Person' has no attribute 'name'
kate = Person('凯特',18,'女')
print()
print(kate.age)
print(kate.sex)
print(kate.country) #China
kate.say_my_country() #China
kate.language = '中文'
print(kate.language) #中文
kate.school('北京') #凯特在北京上学
















