我知道,subclass应该是object
的子类,但为什么它也是object
的实例呢?你知道吗
hmank ~ » python
Python 3.7.3 (default, Mar 26 2019, 21:43:19)
[GCC 8.2.1 20181127] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> class A:
... pass
...
>>> isinstance(A, object)
True
>>> issubclass(A, object)
True
>>>
更重要的是,我引用@prosti answer的话isinstance
Returns a Boolean stating whether the object is an instance or subclass of another object.
但同一链接上的示例显示
>>> class Foo: pass
...
>>> class Bar(Foo): pass
...
>>> isinstance(Bar, Foo)
False
>
似乎意味着class1是class2的一个实例,当且仅当class2是object
,对吧?你知道吗
在python3中,所有类都派生自
object
以及
完全相同。
关于
isinstance(A, object)
返回True
请参见以下代码
这个问题不错。你知道吗
根据定义,^{} :
另一方面^{} :
它本身就是一个类的附加注释。你知道吗
更新:
你通过测试得到答案,逻辑非常简单。类是类,对象是类的实例。你知道吗
如果您真的需要理解implementation,您可以检查代码。你知道吗
如果你是个极客,你也可以找到test cases。你知道吗
在以下示例中,必须实例化对象才能对
True
进行分类:另外,这里的一些例子是Python3特有的,如果你是Python2的家伙,你必须知道你应该更明确地写:
如果编写Python不可知代码,
(object)
部分是必须的。 最后,检查Standard on Overloading isinstance() and issubclass(),但要记住标准是“活的”,将来可能会更新。你知道吗最后,您可以检查类对象关系上的this。你知道吗
因为python中的所有东西都被视为一个对象,这是一种更好的说法,即每个对象都是python中对象的一个实例!你知道吗
仔细想想,这是非常有意义的,因为python是一种面向对象的语言,正因为如此,每个值都是一个对象是很正常的
相关问题 更多 >
编程相关推荐