python类的认识

188 阅读2分钟
  1. 局部变量不会覆盖全局变量,类变量与模块变量概念不同,类变脸:类似全局变量,实例变量:类似于局部变量。
  2. 类变量和实例变量

    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)
  3. 类与对象的变量的查找顺序
  4. self与实例方法:在类里面定义一个方法,如果该方法是一个实例方法,那么必须在参数第一个放入self,self只和对象有关,和类无关,self代表的是实例,不是类,实例方法和实例变量是跟对象相关联。
  5. 在实例方法中访问实例变量与类变量:
  6. 类方法:


  7. 静态方法


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

    def __init__(self,school,name,age):
    self.school = school
    Human.__init__(self,name,age)

  10. python中的super关键字的用法,主要用来在子类中的调用父类中的方法

    def __init__(self,name,age):
        super(子类名,self).__init__(name,age)