3
A
答えて
3
はい、Python2とのpython3の両方インチしかし、このようなクラスのインスタンスは、まだobject
のインスタンスである:
>>> class Foo:
... pass
...
>>> foo = Foo()
>>> foo
<__main__.Foo instance at 0x7f2a33474bd8>
>>> type(foo)
<type 'instance'>
>>> foo.__class__
<class __main__.Foo at 0x7f2a33468668>
>>> Foo.mro()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: class Foo has no attribute 'mro'
>>> issubclass(Foo, object)
False
>>> isinstance(foo, object)
True
>>> type(foo).mro()
[<type 'instance'>, <type 'object'>]
>>> issubclass(type(foo), object)
True
は編集:私はできますが、私は、はいいくつかのものは、Python < 2.6のために異なることと、おそらくC.
1
はい。
isinstance
機能でこれを知ることができます。 Python2で、object
のサブクラスではありませんだけクラスは、古いスタイルのクラスであることを
注:
>>> isinstance(None, object)
True
1
で実装タイプのためかもしれない疑いがありますバージョン3.4のテスト
Python 3.4.3 (default, May 5 2015, 17:58:45)
[GCC 4.9.2] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> None.__class__
<class 'NoneType'>
>>> issubclass(None.__class__, object)
True
関連する問題
- 1. Javaは多重継承を許さず、サブクラスはオブジェクトクラスを継承し、スーパークラスは混乱しますか?
- 2. MultiLevel継承、クラスCはクラスAを継承できますか?
- 3. UML - クラス継承、あなたは何を継承しますか?
- 4. 継承されたクラスはネストされたクラスを継承しますか?
- 5. 継承したクラスを継承する
- 6. Javaクラスを継承するKotlinクラスもAnyから継承しますか?
- 7. UWPはUserControlから継承したクラスから継承します
- 8. 継承は実際にはクラスのメンバーを継承しますか?
- 9. クラス継承とインターフェイス継承
- 10. Gileadを使用して継承を継承するクラス
- 11. VB.netは2クラスを継承します
- 12. C/C++ - 入れ子クラスEnclosingクラスを継承しています
- 13. カスタム属性クラスは継承されたAttributeUsageフラグを継承しますか?
- 14. Pythonクラスのメソッドを継承していますか?
- 15. Scalaの子クラスは親クラスの特性を継承していますか?
- 16. は2クラスから継承
- 17. クラスから継承したクラスとDelphiのインターフェイスから継承するクラスを作成できますか?
- 18. PDOExceptionクラスはExceptionクラスを継承しますか?
- 19. はOPPS - クラス継承
- 20. Java:メソッドはJREのスーパークラスを継承しますか?クラスはObjectを継承しますか?
- 21. 継承クラスを使用したテンプレートクラスからの継承
- 22. Javascriptでクラス(またはオブジェクト)を継承(継承)
- 23. 1つのクラスで継承を行いますが、別のクラスでは継承しません。
- 24. 他のクラスから継承したクラスは継承を使用しないクラスよりもメモリ内で大きくなっていますか?
- 25. WCF公開クラスを継承します。
- 26. コンクリートクラスは、抽象クラスから継承する抽象クラスから継承します
- 27. クラス継承java
- 28. es6クラス継承
- 29. クラス継承PHP
- 30. C++クラス継承
技術的には、インスタンスチェックは、サブクラスチェックと同じではありません。これは、mroチェックと同じではありません。 – o11c
@ o11c 'str .__ bases__'は' object'を与えます。しかし 'NoneType .__ bases__'は' object'を与えません。 '__bases__'プロパティはサブクラスをチェックするのに適していますか? – overexchange
@overexchange 'type(None).__ bases__ ==(object、)'私のためにpython2.7とpython3.5で – o11c