Python Basics-TypeError: 位置引数を2つ取るが、3つ与えられている
2022-02-16 08:32:59
エラーです。
今日、簡単なクラス定義のpythonのコードを書いていて、エラーに遭遇しました。TypeError: drive()は2つの位置引数を取りますが、3つが与えられました。
コードは以下の通りです。
class Car:
speed = 0
def drive(self,distance):
time = distance / self.speed
print(time)
bike = Car()
bike.speed=60
bike.drive(60,80)
トラブルシューティングの結果、クラス定義の def drive (selef, distance) メソッドの self パラメータに問題があることがわかりました。
では、Pythonのselfの基本を簡単に説明します。
self
クラス自体のインスタンスを作りたい場合、selfは作成されたインスタンス自身を指すので、メソッド内部でselfに様々なプロパティをバインドすることができます。インスタンスを作成するときは、空の引数を渡すことはできず、メソッドにマッチした引数を渡す必要がありますが、selfは渡す必要がなく、Pythonインタプリタがインスタンス変数そのものを渡してくれます。
<スパン そこで、2つのソリューションがあります。
方法1:パラメータを1つだけ渡す、2つのパラメータを渡したい場合は方法2を見る
class Car:
speed = 0
def drive(self,distance):
time = distance / self.speed
print(time)
bike = Car()
bike.speed=60
bike.drive(80)
方法2
class Car:
speed = 0
def drive(self,distance,speed):
time = distance / speed
print(time)
bike = Car()
bike.drive(80,50)
関連
-
cmake :pthread_createへの未定義の参照、CMakeがpthreadライブラリを必要とする問題
-
デバッグのアサーションに失敗する問題 解決方法
-
Pyproj のインストールに問題があり、コマンド ' cl.exe' が失敗しました。そのようなファイルやディレクトリはありません
-
C LanguageError:Idは1終了ステータスを返しました。
-
解決済みです。GET http://localhost:8080/statics/js/jquery-3.4.1.js net::ERR_ABORTED 404
-
S_ISREG S_ISDIR およびその他いくつかの共通マクロ
-
std::invalid_argument' what() のインスタンスを投げた後に呼び出された処理を終了させる: stoi
-
java エラー ------ public 型は、それ自身のファイルで定義する必要があります。
-
rvm アンインストール
-
json文字列のダブルクォートが&quotになるのですが、どうすれば解決できますか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Build Record 2-CSS file not loaded-Solved-Resource interpreted as Stylesheet but transferred with MIME type text/plain
-
! 拒否]マスター->マスター(フェッチファースト)問題の解決法
-
Java仮想マシンランチャーです。Java の例外が発生しました
-
オリジン "http://127.0.0.1:8080 "のフレームがクロスオリジンフレームにアクセスするのをブロックした。解決済み
-
shell あいまい出力リダイレクト
-
ModuleNotFoundError: tensorflow.contrib'という名前のモジュールがない ソリューション
-
id 'com.android.library' を持つプラグインが見つかりません。
-
Echartsがエラーを発生させる: echarts Uncaught ReferenceError: echarts is not defined
-
S_ISREG およびその他いくつかの共通マクロ .
-
Python がエラー TypeError: write() 引数はバイトではなく str でなければならない