簡體   English   中英

python中的雙類定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM