gpt4 book ai didi

未定义 python 全局名称 'self'

转载 作者:太空狗 更新时间:2023-10-29 17:00:47 24 4
gpt4 key购买 nike

刚开始学习 python,我确信这是一个愚蠢的问题,但我正在尝试这样的事情:

    def setavalue(self):
self.myname = "harry"

def printaname():
print "Name", self.myname

def main():
printname()




if __name__ == "__main__":
main()

我得到的错误是:

 NameError: global name 'self' is not defined

我在阅读的一些代码中看到这种使用 self 语句引用不同方法的变量的方式,效果很好。

感谢帮助

最佳答案

self 是类中的自引用。您的代码不在类中,您只定义了函数。您必须将您的方法包装在一个类中,如下所示。要使用方法 main(),您首先必须实例化您的类的一个对象并调用该对象的函数。

此外,您的函数setavalue 应该在__init___ 中,即实例化对象时调用的方法。您可能应该考虑的下一步是将名称作为参数提供给 init,这样您就可以创建任意命名的 Name 类对象;)

class Name:
def __init__(self):
self.myname = "harry"

def printaname(self):
print "Name", self.myname

def main(self):
self.printaname()

if __name__ == "__main__":
objName = Name()
objName.main()

看看 Classes chapter of the Python tutorial一个在Dive into Python以供进一步引用。

关于未定义 python 全局名称 'self',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com