[英]Accessing undefined variable outside of method
我不明白為什么這段代碼有效,我認為它應該給出一個錯誤,但它沒有:
class Person:
def __init__(self, name):
self.name = name
def greeting(self):
# Should return "hi, my name is " followed by the name of the Person.
return "hi, my name is "+self.name
def __str__(self):
return "str"
some_person = Person("foo")
print(print(some_person.greeting()))
在__init__
方法中,我嘗試訪問一個實際上沒有定義的變量(應該不是錯誤?),而在greeting
方法中,我嘗試訪問剛剛在__init__
定義的變量(它不應該是一個錯誤?)。 它沒有給出任何錯誤並且運行順利? 這怎么可能?
def __init__(self, name):
self.name =name
事實上,您試圖訪問一個實際定義的變量。 name
在函數參數中定義。
應該不會出錯! 那是因為 self 是它自己的對象(你明白為什么它被稱為self
嗎?)所以如果你在__init__
函數中定義了一些東西,它存儲在對象中,這樣你就可以通過將它從對象本身剝離來從另一個函數中使用它。 您所說的name
變量是在函數定義中定義的! 你把__init__(self,
name )
放在哪里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.