【Python】类、对象、self
个人理解:类是一个模板,对象是类的实例化
参考:https://www.runoob.com/python/python-object.html
【0】类的内置属性
__dict__ : 类的属性(包含一个字典,由类的数据属性组成)
__doc__ :类的文档字符串
__name__: 类名
__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod【我理解为import xxx】中,那么className.__module__ 等于 mymod)
__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)
【1】类的创建
class ClassName:
'类的帮助信息'
class_suite
可以用__doc__查看类信息
比如print(ClassName.doc)
输出为类的帮助信息
class Employee:
'所有员工的基类'
empCount = 0
def __init__(self, name, salary): # 构造方法/初始化方法:当创建了这个类的实例时就会调用该方法
self.name = name
self.salary = salary
Employee.empCount += 1
def displayCount(self):
print "Total Employee %d" % Employee.empCount
def displayEmployee(self):
print "Name : ", self.name, ", Salary: ", self.salary
【2】对象的创建
object = ClassName()
【3】类的继承
class 子类名(父类名):
...
可以继承多个类:
class 子类名(父类名1, 父类名2, ...):
...
构造函数:子类不重写 init,实例化子类时,会自动调用父类定义的 init。
当子类有了__init__:
子类有__init__也想继承父类的__init__时,可以用super:
【4】下划线与关键字:
__foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许**其本身**与**子类**进行访问,不能用于 from module import *
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个**类本身**进行访问了。
【5】方法重写:子类中重写父类中有的同名方法