# Python中的类的概念和其他语言相比没什么不同 # 比较特殊的是protected和private在Python中是没有明确限制的 # 一个惯例是用单下划线开头的表示protected,用双下划线开头的表示private # Python中定义一个类 class class1: """Class A""" # 类定义中紧跟着类名字下一行的字符串叫做docstring, # 可以写一些用于描述类的介绍,如果有定义则通过“类名.__doc__”访问 print('class1') # 构造函数,用关键字“__init__” # 在实例化对象时,构造函数被自动调用,一般用于初始化变量 # self:在类中的方法,第一个参数必须是self def __init__(self,name,job): print('I am __init__ in class1') print('My name is '+ name+' My job is '+job) # 定义属性,一定要用self.属性名 self.myname=name self.myjob=job # 定义类中的方法: def myfunc(self,funcName): print('I an in class1.myfunc') print(funcName) # 在实例化类时传入参数给构造函数 a=class1("keloli","student") print(a.myname) a.myfunc("func1") # 输出 class1 I am __init__ in class1 My name is keloli My job is student keloli I an in class1.myfunc func1
# 类的继承与重载 # 继承:把某一个或多个类(基类)的特征拿过来 # 重载:在子类(派生类)中多继承来的特征重新定义 # 单继承:父亲可以说话,小儿子继承了父亲,但是减弱了父亲的说话能力 # 父亲类(基类) class father(): def speak(self): print("father speak") # 大儿子类(单继承父亲类) class son1(father): pass s1=son1() s1.speak() # 多继承:父亲可以说话,母亲可以写字, # 女儿继承了父亲和母亲,还可以听 # 母亲类(基类) class mother(): def write(self): print('mother write') # 女儿类(多继承父亲和母亲) class daughter(father,mother): def listen(self): print('daughter listen') dau=daughter() dau.speak() dau.write() dau.listen() # 重载 # 小儿子类重载父亲类,减弱了父亲的说话能力 class son2(father): def speak(self): print('son2 speak') s2=son2() s2.speak() # 输出 father speak father speak mother write daughter listen son2 speak