类和对象
示例代码:
class Person:
def __init__(self,name,age):
self.name=name
self.age=age
def greet(self):
print("Hello,my name is ",self.name,",and I'm ",self.age," years old.")
a=Person("Peter",20)
a.greet()
输出结果:Hello,my name is Peter ,and I’m 20 years old.
理解:在Python的类中,任何函数都有一个对象作为参数
继承
示例代码
class Person:
def __init__(self,name,age):
self.name=name
self.age=age
def greet(self):
print("Hello,my name is ",self.name,", and I'm ",self.age," years old.")
class TenYearsOldPerson(Person):
def __init__(self,name):
super().__init__(name,10)
def greet(self):
print("I don't talk to strangers!")
Ken=Person("Ken",20)
Ken.greet()
Anna=TenYearsOldPerson("Anna")
Anna.greet()
输出结果:
Hello,my name is Ken , and I’m 20 years old.
I don’t talk to strangers!
怎么理解继承呢?就像他的名字一样,继承是一种父与子的关系,子类拥有父类的一些特性(如在这里的TenYearsOldPerson就跟父类一样拥有名字)但又有一些跟父类不一样的东西(在这里我重写了子类的方法,以达到子类的greet()方法跟父类的输出不一样)
如果:我删除了子类中重写的方法,那么子类就完全继承了父类的打招呼方式
def greet(self):
print("I don't talk to strangers!")
输出结果:
Hello,my name is Ken , and I’m 20 years old.
Hello,my name is Anna , and I’m 10 years old.