相关疑难解决方法(0)

为什么+ =在列表上出现意外行为?

+=python中的运算符似乎在列表上意外运行.谁能告诉我这里发生了什么?

class foo:  
     bar = []
     def __init__(self,x):
         self.bar += [x]


class foo2:
     bar = []
     def __init__(self,x):
          self.bar = self.bar + [x]

f = foo(1)
g = foo(2)
print f.bar
print g.bar 

f.bar += [3]
print f.bar
print g.bar

f.bar = f.bar + [4]
print f.bar
print g.bar

f = foo2(1)
g = foo2(2)
print f.bar 
print g.bar 
Run Code Online (Sandbox Code Playgroud)

OUTPUT

[1, 2]
[1, 2]
[1, 2, 3]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3]
[1]
[2] …
Run Code Online (Sandbox Code Playgroud)

python augmented-assignment

103
推荐指数
6
解决办法
6万
查看次数

框架和对象之间有什么区别,什么时候应该修改另一个?

我开始阅读python的+ =语法并偶然发现以下帖子/答案: 关于+ =的交互式代码

所以我注意到框架和物体之间似乎存在差异.

框架和对象

在全局框架中,即使它们是不同的变量,它们也指向同一个对象; 如果这条线

l2 += [item]
Run Code Online (Sandbox Code Playgroud)

相反

l2 = l2 + [item]
Run Code Online (Sandbox Code Playgroud)

然后'l2'在该行运行时成为一个单独的对象.我最大的问题是你何时想要一个变量指向一个单独的对象?另外,为什么以及何时要让它们指向同一个对象?

任何解释或用例将不胜感激!如果您能提及与数据科学相关的任何内容,那就另外了

python object dataframe python-3.x

4
推荐指数
1
解决办法
3216
查看次数