数日間検索して別のコードを試しても、まだ問題を特定できません。したがって、私はこの質問をここに投稿しました。
この問題では、Python 2.7.2を使用しています。具体的には、compositionを使用して、あるクラスの関数を別のクラスにインポートしています。インポートされたクラスの関数には、に基づく単純なifステートメントが含まれていraw_input
ます。ユーザーの入力に応じて、ifステートメントは、入力に対応する新しい関数を呼び出すか、少なくとも呼び出すのに役立ちます。ただし、この関数は、インポートされるクラスではなく、インポートされるクラスの一部になります。
ここでは、クラスごとに1つずつ、合計2つの.pyファイルを使用しており、それらは同じフォルダーにあります。
これが最初のファイル(main.py)で、メインクラスが含まれています。
# importing class from file in same folder
from class_decision import Decision
class Main_Compositor(object):
def __init__(self):
# using composition to call the function of the imported class
self.door_decision = Decision()
def comp_door(self):
self.door_decision.user_text()
if door == "left":
left_door()
elif door == "right":
right_door()
else:
print "incorrect input"
def left_door(self):
print "you're in the left room"
def right_door(self):
print "you're in the right room"
# instantiating
A_Compositor = Main_Compositor()
# calling A_Compositor's function comp_door()
A_Compositor.comp_door()
そして、これがclass_decision.pyファイルで、そのクラスはインポートされています。
class Decision(object):
def user_text(self):
print "which door do you open:"
print "left or right?"
door = raw_input("> ")
if door == "left":
print "you have chosen the left door"
return door
elif door == "right":
print "you have chosen the right door"
return door
else:
print "you must choose a door"
self.user_text()
ご覧のとおりReturn
、メインクラスに変数を知らせるために使用しようとしていますdoor
。これは、の誤った使用である可能性がありますReturn
。私もうまくいっていませんgetattr
でした。この質問がたくさん聞かれたことをお詫びします。私と同じような質問はすべて配列に関係しているようで、私はそれらの答えから自分の問題を本当に理解することができませんでした。助けてくれてありがとう。