这两个人的实例之间有什么区别?
class Person:
pass
a = Person()
a.name = "Jo"
a.age = 25
print(a.name)
b = Person()
b.surname = "Deshu"
print(b.surname)
a
和b
类型相同吗? - 是的
为什么?他们有不同的成员
a
有Person.name
和Person.age
个属性,b
只有Person.surname
答案 0 :(得分:3)
它们是同一类型。 请注意,在python继承中,静态类型语言中的母鸡有点不同。
python使用duck typing - 也就是说,你不必拥有一个允许多态的公共超类或接口 - 你只需拥有相关的方法\属性。
另一方面,如果能够定义动态字段或方法,则可以使用不同的方法属性集来使同一个类的不同对象成为可能。取决于你不要滥用鸭子打字
python继承与行为继承更相关 - 从超类继承方法实现。
答案 1 :(得分:0)
与模块一样,类也参与Python的动态特性:它们是在运行时创建的,可以在创建后进一步修改。
您可以查看有关该主题的python文档。 https://docs.python.org/2/tutorial/classes.html