Python 3.x 如何在一个甚至不在该类中的函数中修改对象属性 foo类: 定义初始化(self,x): self.x=x foo_obj=foo(4) def fooo(): foo_obj.x+=1 fooo() 打印(foo_obj)

Python 3.x 如何在一个甚至不在该类中的函数中修改对象属性 foo类: 定义初始化(self,x): self.x=x foo_obj=foo(4) def fooo(): foo_obj.x+=1 fooo() 打印(foo_obj),python-3.x,Python 3.x,如果我们试图修改函数中的全局变量,通常会得到分配前引用的错误,但为什么我不能在这里得到它。当您引用同一变量并使其成为局部变量时,您会得到分配前引用的错误。在这里,您引用它的属性。没有范围冲突foo_obj在调用函数时定义良好。然后,只需访问其x属性并对其进行更改。为什么会出现错误?您是否将默认私有的概念引入python?如果您想要私有对象var,请使用

如果我们试图修改函数中的全局变量,通常会得到分配前引用的错误,但为什么我不能在这里得到它。

当您引用同一变量并使其成为局部变量时,您会得到分配前引用的
错误。在这里,您引用它的属性。没有范围冲突
foo_obj
在调用函数时定义良好。然后,只需访问其
x
属性并对其进行更改。为什么会出现错误?您是否将默认私有的概念引入python?如果您想要私有对象var,请使用