Python Class

Python Class

  1. 类中定义的变量为类变量, __init__函数中定义的变量为实例变量, ClassName.name是属于类变量,method.name是属于实例变量:

    class Student:
        nums = 0 # 类变量
        def __init__(self,name,school):
            self.name = name # 实例变量
            self.school = school # 实例变量
            Student.nums += 1
        def intorduce(self):
            print("i am ", self.name, " and i from ",self.school)
    pidan = Student('pidan','hbfu')
    lily = Student("lily",'hbbu')
    pidan.intorduce()
    lily.intorduce()
    print(pidan.nums)
    
    i am  pidan  and i from  hbfu
    i am  lily  and i from  hbbu
    2
    
  2. 类中函数的第一个参数一定要为self,self表示的是类的实例,而不是类,self不是关键字,可以换成别的其它的都行。

  3. 实例可以自己添加属性,类也可以自己添加属性,也可以自己删除,各实例之间自己添加删除自己的属性对其它实例没有影响,类添加删除属性则全部实例都跟着变化。

    # 接上面代码
    pidan.age = 21
    print(pidan.age)
    print(pidan.__dict__)
    print(lily.__dict__)
    
    Student.classes = 'people'
    print(Student.classes)
    print(pidan.classes)
    print(lily.classes)
    
    {'school': 'hbfu', 'age': 21, 'name': 'pidan'}
    {'school': 'hbbu', 'name': 'lily'}
    
    people
    people
    people
    

python内置类属性

  • dict : 类的属性(包含一个字典,由类的数据属性组成)
  • doc :类的文档字符串
  • name: 类名
  • module: 类定义所在的模块(类的全名是’main.className’,如果类位于一个导入模块mymod中,那么className.module 等于 mymod)
  • bases : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

一直不懂的地方

if __name__ == '__main__':这里:

有句话经典的概括了这段代码的意义:

“Make a script both importable and executable”

意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行

猜你喜欢

转载自blog.csdn.net/qq_38595487/article/details/83474822
今日推荐