在类中使用不带self的变量-Python

在类中使用不带self的变量-Python,python,Python,我有一个问题,为什么下面的代码执行它的功能 class Account: def __init__(self, id): self.id = id id = 800 id = self.id + id acc = Account(123) print(acc.id) 为什么这个代码会打印123而不是923?为什么id在类内部不起作用?将作用域中的变量声明为self.id+id,当init函数完成时,作用域消失,因此id不再存在 也许,你

我有一个问题,为什么下面的代码执行它的功能

class Account:
    def __init__(self, id):
        self.id = id
        id = 800
        id = self.id + id

acc = Account(123)
print(acc.id)

为什么这个代码会打印123而不是923?为什么id在类内部不起作用?

将作用域中的变量声明为
self.id+id
,当init函数完成时,作用域消失,因此
id
不再存在

也许,你想做:

self.id = self.id + id

id
\uuuu init\uuuu
内部的局部变量,您不能在此方法外部访问它

当您访问
acc.id
时,您可以访问
Account
类的
id
属性


属性前面是类中的
self
,因为您正在设置
id=self.id+id
而不是
self.id=self.id+id
<代码>id!=self.id,它们是两个完全不同的变量
acc.id
将返回
self.id
关于
\uuuuu init\uuuu
函数的研究值