我刚刚意识到以下工作。怎么运作?有什么细节?如果类定义不同会发生什么?
class A(object):
pass
class A(object):
pass
答案 0 :(得分:3)
第二个定义会覆盖第一个定义。它与简单变量没有区别:
>>> i = 2
>>> i = 3
>>> print(i)
3
同样适用于函数:您只需重新定义它。
>>> def f(): return 1
...
>>> def f(): return 2
...
>>> f()
2
Python不强制对象名称的唯一性(即不会因“......已定义”而崩溃)。它也不关心内部:第一类定义可能与第二类定义有不同的方法。订单是唯一重要的事情。
答案 1 :(得分:1)
第二个定义被覆盖。
$ cat test.py
class A(object):
def __str__(self):
return 'first A'
class A(object):
def __str__(self):
return 'second A'
a1 = A()
print(a1)
$ python test.py
second A