簡體   English   中英

引用:in中問候NameError:

[英]Traceback: in in greet NameError:

有人可以幫我解決這個問題嗎?
我收到此消息:

Traceback: in in greet NameError: global name 'name' is not defined

由此:

class Person:
    def __init__(self, name):
        self.name = name
    def greet(self, other_name):
        return "Hi {0}, my name is {1}".format(other_name, name)

name在歡迎功能中超出范圍。 您需要改用self.name 例如

class Person:
    def __init__(self, name):
        self.name = name
    def greet(self, other_name):
        self.other_name = other_name
        return "Hi {0}, my name is {1}".format(other_name, self.name)

您可以驗證它是否有效

>>> mitch = Person('mitch')
>>> mitch.greet('mitchell') # prints 'Hi mitchell, my name is mitch'
>>> mitch.name # prints 'mitch'
>>> mitch.other_name # prints 'mitchell'

namePerson類的實例屬性。 意思是,您需要在其前面加上self. 獲得其價值:

return "Hi {0}, my name is {1}".format(other_name, self.name)
#                                                  ^^^^^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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