首页 > 解决方案 > 设置/重置在 __main__ 中的 __init__ 中声明和初始化的变量的值

问题描述

我想设置/重置我在init中初始化的变量的值main。我有以下代码。

class myClass:

    def myfun(self):

       # code using the url

    def __init__(self):
        self.url = None

if __name__ == '__main__':

   # list of integers
   my_list = [1, 2, 3,4,5]
   count = 0

   for item in my_list:
       if count % 2 == 0:
           self.url = "http://myurl.com" # I want to set/reset my url here

我收到了这个错误:

NameError:名称'self'未定义`

我可以做些什么来设置/重置以后可以在我的类的所有方法中全局使用的变量?

标签: pythonnameerror

解决方案


导入守卫if __name__ == '__main__':及其中的所有内容都在全局命名空间中。它不是你班级的一部分,更不用说班级中的方法了。要拥有您的类的实例,您需要实例化它:

my_obj = myClass()

现在,在同一个命名空间中,你可以做

my_obj.url = ...

其次是

my_obj.myfun()

推荐阅读