簡體   English   中英

在方法之外訪問未定義的變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM