feg*_*ege 3 python methods operator-overloading operators redefine
当我使用时,我想知道Python调用了什么=:
a = b
Run Code Online (Sandbox Code Playgroud)
我在哪里查找这些信息?
我会用my ="赋值给变量"
a会有类似的行为
l=list()
l.append(1)
l.append(2)
l.append(3)
l1=l
l1[2] = ’B’
print(l1)
[1, 2, ’B’]
print(l)
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
Sve*_*ach 13
你无法=在Python中重新定义.它总是将右侧的对象绑定到左侧的名称.
请注意,这与例如C++完全不同,其中=运算符通常涉及将数据复制到目标变量.Python没有C++所具有的变量.Python具有可绑定到对象的名称.
您无法重新定义=,但您可以重新定义:
a[c] = b
or
a.c = b
Run Code Online (Sandbox Code Playgroud)
通过实施__setitem__或__setattr__分别执行此操作.对于属性,它通常更适合使用property,但__setattr__有其用途.