1、类
类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都相互独立,互不影响。方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据。
通过在实例上的调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。和静态语言不同,python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名可能是不同的。
2、访问限制
如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__
,在Python中,实例的变量名如果以__
开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。
3、继承和多态
继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。
4、实例属性和类属性
实例属性属于各个实例所有,互不干扰
类属性属于类所有,所有实例共享一个属性
不要对实例属性和类属性使用相同的名字,否则将产生难以发现的错误。
5、多重继承
多重继承的概念应该比较好理解,比如现在需要新建一个类baby继承Child,可继承父类及父类上层类的属性及方法,优先使用层类近的方法
class Person(object):
def __init__(self,name,sex):
self.name = name
self.sex = sex
def print_title(self):
if self.sex == "male":
print("man")
elif self.sex == "female":
print("woman")
class Child(Person):
pass
class Baby(Child):
pass
May = Baby("May","female") # 继承上上层父类的属性
print(May.name,May.sex)
May.print_title() # 可使用上上层父类的方法
class Child(Person):
def print_title(self):
if self.sex == "male":
print("boy")
elif self.sex == "female":
print("girl")
class Baby(Child):
pass
May = Baby("May","female")
May.print_title() # 优先使用上层类的方法
来源:CSDN
作者:Jmayday
链接:https://blog.csdn.net/Jmayday/article/details/103478375