GNU ベースの OS (Precise Puppy 5.4) に付属するすべてのプログラムを使用しています。
説明
- まず、クラスを作成します。
- そのクラス内でメソッドを定義します
- このメソッドは一般的な名前の引数を取ります
- 内部
if-elif-else
には、引数値で機能するステートメントがあります if
ステートメントは、返す文字列を決定します
クラスの外では、 variable に渡されるユーザー入力を求めますuserinput
。
次に、引数としてメソッドを呼び出し、userinput
戻り値を変数 name に割り当てますvariable
。それから私は印刷しますvariable
。
いくつかのメモ
まず、同じ効果を得る方法が他にもあることを理解しています。私がそれらの 1 つを使用しない理由は、かなり大規模なテキスト アドベンチャーを作成しており、非常に多くの決定を行い、非常に多くの変数を割り当てる必要があるためです。
クラスをカテゴリとして使用し、メソッドを特定の領域として使用して、ゲームのさまざまなセクション (つまり、 という名前のクラスと 、 、 などのメソッド) を分類すると、コードの操作がはるかに簡単になりますPlayer
。stats
inventory
gold
class.function
このエラーは、 を呼び出したときにクラスに戻り値がないという事実に関連していることがわかります。ただし、メソッドはクラス内で呼び出されないため、メソッドから値をクラス内ではなくメソッド外で返す方法はありません。
class classname () :
def methodname (value) :
if value == 1 :
return "Hello World"
else :
return "Goodbye World!"
userinput = raw_input("Enter the number [1]\n")
variable = classname.methodname (userinput)
print (variable)
コンソール出力
Enter the number [1] (this is the prompt)
1 (this is the user input)
(now the error)
Traceback (most recent call last):
File "filename.py", line 8, in <module>
variable = (classname.methodname (userinput))
TypeError: unbound method methodname() must be called with
classname instance as first argument (got classobj instance
instead)
この問題は解決されました。問題は単純な構文の問題でした。これは、ソリューションの固定コード Props to max と、この投稿をフォーマットするための Lev Levitsky です。^.^
class classname () :
def methodname (self, value) :
if value == "1" :
return "Hello World"
else :
return "Goodbye World!"
userinput = raw_input("Enter the number [1]\n")
variable = classname().methodname (userinput)
print (variable)