[解決済み】NameError: 名前 'self' が定義されていません。
2022-01-12 21:10:13
質問
コードは次のとおりです。
class A:
def __init__(self, a):
self.a = a
def p(self, b=self.a):
print b
実行すると、エラーが発生します。
NameError: name 'self' is not defined
?
解決方法は?
デフォルトの引数値は関数定義時に評価されますが
self
は関数呼び出し時にのみ利用可能な引数です。従って、引数リスト内の引数は互いに参照できない。
よくあるパターンとして、引数をデフォルトで
None
を作成し、そのためのテストをコードに追加します。
def p(self, b=None):
if b is None:
b = self.a
print b
関連
-
python call matlab メソッドの詳細
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] __init__.py でも「非パッケージで相対的なインポートを試みた」を修正する方法
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] インスタンスのクラス名を取得する?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 自分」という言葉は何のためにあるのか?
-
[解決済み】「datetime.datetime not JSON serializable」を克服する方法とは?
-
[解決済み】Pythonの「private」メソッドは、なぜ実際にはprivateではないのですか?
最新
-
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 人工知能 人間学習 描画 機械学習モデル作成
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み] データ型が理解できない
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】Python: OverflowError: 数学の範囲エラー