- 局部变量不会覆盖全局变量,类变量与模块变量概念不同,类变脸:类似全局变量,实例变量:类似于局部变量。
- 类变量和实例变量
class Student():
name = "Lucas_li"
age = 0
def __init__(self,name,age):
self.name = name
self.age = age
student1 = Student("nihao",20)
print(student1.name)//nihao---实例变量
print(Student.name)//Lucas_li---类变量
class Student():
name = "Lucas_li"
age = 0
def __init__(self,name,age):
self.name = name
self.age = age
student1 = Student("nihao",20)
print(student1.name)
print(student1.__dict__)
//{'name': 'nihao', 'age': 20}--查找变量的途径
print(Student.name)
- 类与对象的变量的查找顺序

- self与实例方法:在类里面定义一个方法,如果该方法是一个实例方法,那么必须在参数第一个放入self,self只和对象有关,和类无关,self代表的是实例,不是类,实例方法和实例变量是跟对象相关联。
- 在实例方法中访问实例变量与类变量:

- 类方法:

- 静态方法

- 成员可见性:公开和私有public/private,只需在变量前加双下划綫皆可以变成私有便量,私有变量在类的外部是无法访问的,若访问时python将会默认自动创建了新的变量并且完成赋值(但是与类中的私有变量不是同一个变量),但是在python中没有什么变量是私密的,万物都是可以访问的,私有变量__score在存储是将会变成_Student__score,而动态添加的变量将会变成为__score,所有可以通过__dict__来查看对象的属性
- 继承:important!面向对象的三大特性:(多继承性,封装性,多态性)子类可以继承父类的一切:子类调用父类的构造函数可以直接调用父类的构造函数,但是必须传递self参数
def __init__(self,school,name,age):
self.school = school
Human.__init__(self,name,age)
- python中的super关键字的用法,主要用来在子类中的调用父类中的方法
def __init__(self,name,age):
super(子类名,self).__init__(name,age)