2011-07-30 32 views
0
class MyClass: 

    def __init__(self): 
     pass 

    val = "" 

    def getval(self): 
     # code to get val 
     # ... and at the end: 
     self.val = "bla bla" 

    self.getval() 
    print val 

ここで、名前selfは見つかりません。 getval()(自己接頭辞なし)だけを試してみると、getvalメソッドは0引数を取らないと言います。なぜこのコードはうまくいかないのですか?このコードはなぜ機能しませんか? (Python)

+0

あなたの投稿を再フォーマットしてください。 – agibalov

答えて

1

オブジェクトのインスタンスを作成していません。

class MyClass: 
    def __init__(self): 
     pass 

    # this is a class variable 
    val = "" 

    def getval(self): 
     # code to get val 
     # ... and at the end: 
     self.val = "bla bla" 
     return self.val 

# make a instance of the class 
x = MyClass() 
print x.getval() 

# MyClass.val is a different class variable 
print MyClass.val 

Read the Python tutorial:ここ

class MyClass: 
    def __init__(self): 
     pass 

    val = "" 

    def getval(self): 
     # code to get val 
     # ... and at the end: 
     self.val = "bla bla" 

    self.getval() 
    print val 

o = MyClass() 
print o.getval() 
6

はもう少し理にかなっている例です。

+3

私は、 'MyClass.val'と' x.val'は別の変数であることに気付くかもしれません。 – robert

関連する問題