0

これは私のコードです

class Mine:
    def __init__(self):
        var = "Hello"
    def mfx(self):
        var += "a method is called"
        print var

    me = Mine()

私がme.mfx()それを呼び出すと、次のエラーが発生します

>>> me.mfx()

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    me.mfx()
  File "D:\More\Pythonnnn\text.py", line 5, in mfx
    var += "a method is called"
UnboundLocalError: local variable 'var' referenced before assignment
>>>

クラス内で使用するためだけに var が必要です。だから私はしたくない self.var 。なぜこうなった?クラス内のどこでも使用できる変数を作成するにはどうすればよいですか。私はPython2.7を使用しています

4

3 に答える 3

0

を使用する必要selfがあります。それ以外の場合は、作成されたメソッド内でのみアクセス可能なローカル変数を作成します。

于 2013-07-22T05:36:39.087 に答える
0

var を修飾する必要があります。(self.varの代わりにvar)

class Mine:
    def __init__(self):
        self.var = "Hello"
    def mfx(self):
        self.var += "a method is called"
        print self.var

me = Mine()
me.mfx()
于 2013-07-22T05:36:05.427 に答える
0

インスタンス変数にアクセスするには、self を使用する必要があります。また、新しいスタイル クラスを使用し、コンストラクターのパラメーターで渡すこともお勧めします。

class Mine(object):
    def __init__(self, var):
        self.var = var

    def mfx(self):
        self.var += "a method is called"
        print self.var

me = Mine()
me.mfx()

毎回「こんにちは」を渡したくない場合は、デフォルト値を作成してください

def __init__(self, var="hello"):
      self.var = var
于 2013-07-22T05:57:12.800 に答える