2016-11-19 7 views
1

私はPythonには初めてで、私の最初のPythonコードで問題を理解しようとしています。私はこの方法parameterにユーザからの入力tempを取っていると私はmake_item方法で別の変数oven_tempでこれtempを比較したいです。しかしNameErrorという名前のtempは定義されていません。私はここでいくつかの記事を読んで、メソッドから価値を返さなければならないと言われました。私はそれを返しましたが、正確に進める方法は得られませんでした。Pythonの同じクラス内の他のメソッドで1つのメソッドの変数を渡す方法

class maker: 
     def parameter(self): 
      temp = int (input ('At what temperature do you want to make \n')) 
      return temp 


     def make_item (self): 
      def oven (self): 
       oven_temp = 0 
       while (oven_temp is not temp): 
        oven_temp += 1 
        print ("waiting for right oven temp") 

      oven(self) 


    person = maker() 
    person.parameter() 
    person.make_item() 

答えて

1

以下はあなたの問題を解決するために動作するはずです。基本的には、メソッドの間に渡す変数をクラスのメンバーとして格納する必要があります。これを行うには、関数にselfパラメーターの属性を割り当てます。

class maker: 
    def parameter(self): 
     self.temp = int (input ('At what temperature do you want to make \n')) 


    def make_item (self): 
     def oven(): 
      oven_temp = 0 
      while (oven_temp is not self.temp): 
       oven_temp += 1 
       print ("waiting for right oven temp") 

     oven() 


person = maker() 
person.parameter() 
person.make_item() 
+0

ありがとう..私はポイントを持っています:) – learningpal

2

self

class MyMaker: 
    def ask_temperature(self): 
     self.temp = int(input('Temperature? \n')) 

    def print_temperature(self): 
     print("temp", self.temp) 

それを試してみてください。

> maker = MyMaker() 
> maker.ask_temperature() 
Temperature? 
4 
> maker.print_temperature() 
temp 4 
+0

ありがとう..それは助けてくれました。:) – learningpal

関連する問題