2017-01-06 11 views
1

私はこの小さなスクリプトに2つの機能を持つ1つのクラスを実装しました。私は、クラスの外から呼び出したときに、2番目の関数の最初の関数で見つかった値を単純に出力したいと考えました。自己使用時の属性エラー

問題
それは自己の上に、このarticleを読んだ後、本当に簡単なように見えたが、私がしようと何も動作しているようだありません。

AttributeError: 'search' object has no attribute 'here'

質問
がどのように私は私が探しています結果を達成するために、このスクリプトを変更することができます...

class search: 
    def test(self): 
     self.here = 'hi' 
     self.gone = 'bye' 
     self.num = 12 

    def tester(self): 
     return "{}".format(self.here) 

s = search() 
s.tester() 
print (s.gone) 

戻り値:私は属性のエラーを得続けますか?

答えて

2

「ここ」

class search: 
    here=None 
    def __init__(self): 
    self.here='hi' 

    def test(self): 
    ... 
+0

最初の関数で割り当てられた値を保持したいと思っています。これにより、グローバル変数はnullになり、何も印刷されません。 – ITSUUUUUH

+1

次にコンストラクタ__ init __を使用して値を設定し、更新しました – Mate

+0

ああ、それは私が探していたものです。申し訳ありませんが、Pythonには初めてです。 – ITSUUUUUH

1

を定義する問題は、変数を開始する機能テスト(自己)を実行されることはありません。 ()の前にs.test()を使用して呼び出すことができます。

+0

これも私のために働いた。ありがとう! – ITSUUUUUH

関連する問題