繁体   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