0

代码:

class Example:

    pos_list=[]
    last_cell=0

    def setText(self):
        last_cell = 10
        pos_list.append(int(10))              #Line 1
        print pos_list , last_cell            #Line 2

错误:未定义全局名称“pos_list”。

如果我在第 1 行和第 2 行访问pos_list

   self.pos_List or Example.pos_list

然后没有错误[这很好,因为我将它作为实例(自我)或类(示例)变量访问]

但是last_cell呢?我在没有自我或类参考的情况下访问它。但是在pos_list的情况下, python 解释器迫使我使用这两个引用。

为什么可以在没有任何参考的情况下访问 last_cell ?

4

2 回答 2

4

你不是。您只是在创建一个恰好具有相同名称的局部变量。

class Example:
    x = 1
    def f(self):
        x = 2
Example().f()
print(Example.x) #=> 1
于 2013-04-29T17:46:19.627 回答
0

因为您将 last_cell 声明为局部变量。这样做时,pos_list.append()您试图对未定义的事物调用方法,这会产生错误。

于 2013-04-29T17:46:07.083 回答