[解決済み】TypeError: super() takes at least 1 argument (0 given) error is specific to any python version?
2022-02-19 06:01:23
質問内容
次のようなエラーが発生します。
TypeError: super() は少なくとも1つの引数を取ります (0 が指定されています)
Python2.7.11でこのコードを使っています。
class Foo(object):
def __init__(self):
pass
class Bar(Foo):
def __init__(self):
super().__init__()
Bar()
それを実現するための回避策は、次のようになります。
class Foo(object):
def __init__(self):
pass
class Bar(Foo):
def __init__(self):
super(Bar, self).__init__()
Bar()
Python3特有の構文のようです。2.xと3.xの間で互換性のあるコードを提供し、このエラーが発生しないようにするには、どのような方法があるでしょうか?
解決方法は?
はい、0-引数の構文はPython 3に特有のものです。 Python 3.0での新機能 と PEP 3135 --。 新型スーパー .
Python 2やクロスバージョン互換性が必要なコードでは、クラスオブジェクトとインスタンスを明示的に渡すことに専念してください。
はい、バックポートがあります。
super()
は Python 2 で動作します (たとえば
future
を含む多くのハックが必要です。
クラス階層のフルスキャン
を使用して、一致する関数オブジェクトを見つけます。これは壊れやすく遅いので、単に便利さに見合うものではありません。
関連
-
ピロウズ画像色処理の具体的な活用方法
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Python百行で韓服サークルの画像クロールを実現する
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】TypeError: method()は1つの位置引数を取るが、2つが与えられている
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
python string splicing.join()とsplitting.split()の説明
-
Python jiabaライブラリの使用方法について説明
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。