-1

次の問題があります。定義済みのオブジェクトをキーワード引数としてスーパークラスとして受け取るオブジェクト クラスが必要です。

しかし、私はエラーが発生しています:

ImportError: cannot import name Object

コード:

import Object

class Object:

    defaultobject = Object('defaultobject', None)

    def __init__(self, name, superclass = defaultobject):
        self.__name = name
        self.__superclass = superclass
4

2 に答える 2

3

現在のモジュールをインポートすることはできませObject()インスタンス化を クラス定義のに移動する必要があります。

class Object:
    defaultobject = None

    def __init__(self, name, superclass=None):
        self.__name = name

        if superclass is None:
            superclass = self.defaultobject
            if superclass is None
                # No default set yet, use `self` instead (it'll *be* the default)
                superclass = self

        self.__superclass = superclass

Object.defaultobject = Object('defaultobject', None)

クラス定義にはいつでも属性を追加できますが、クラスのインスタンスを作成するには、まずそれを定義する必要があります。

そうでなければ、ここsuperclass is Noneにキャッチ 22 があるため、ダンスが必要です。Object最初に設定せずに のインスタンスを作成することはできませんObject.defaultobject。デフォルトをまだ作成していないため、これはできません。

于 2013-03-28T20:34:47.450 に答える
0

この問題は、一部の子クラスによってもインポートされる親クラスからインポート ライブラリを削除することで解決できます。子クラスもインポート オブジェクトを使用している場合は、それを親から削除すると問題が解決します。

于 2014-01-17T09:33:05.393 に答える