[英]Double class definitions in python
我剛剛意識到以下作品。 如何運作? 這有什么細節? 如果類定義不同會怎樣?
class A(object):
pass
class A(object):
pass
第二個定義將覆蓋第一個定義。 它與簡單變量沒有什么不同:
>>> i = 2
>>> i = 3
>>> print(i)
3
函數也是如此:您只需重新定義它。
>>> def f(): return 1
...
>>> def f(): return 2
...
>>> f()
2
Python不會強制對象名稱的唯一性(即不會因“ ...已經定義”而崩潰)。 它也不在乎內部:第一類定義可能具有與第二類定義不同的方法。 順序是這里唯一重要的事情。
第二個定義被覆蓋。
$ 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.