如何在类中正确分配不同的变量而不影响它基于的类变量 [python]

库尔特·欧文·罗哈斯

我目前正在尝试使用 python 类作为某种子程序。

我正在尝试处理一个数组(比如“temp”)。数组 'temp' 基于数组 'x'。但是,当我对数组 'temp' 进行更改时,数组 'x' 也会更改,这非常奇怪。*我想问一下如何在不影响 x 数组的情况下创建临时数组。

这是我的示例代码,它更清楚地显示了这种效果。

#!/usr/bin/env python3
import numpy as np

class TEST:
    def __init__(self):
        self.x = np.asarray([[1,2,3], [4,5,6], [7,8,9]])
        
    def process(self):
        print(self.x)
        print("- "*5)
        
        temp = self.x
        temp[:,0] = temp[:,0] +10
        
        print(self.x)
        
if __name__ == "__main__":
    asd = TEST()
    asd.process()

输出是

[[1 2 3]
 [4 5 6]
 [7 8 9]]
- - - - -
[[11  2  3]
 [14  5  6]
 [17  8  9]]
哈兹甘 1

Python 有很酷的细节。如果你将一个数组等同于另一个变量,那么它们就会连接起来,就会出现像你这样的问题。您只需将此数组分配给另一个变量。我建议将该行更改为: temp = self.x.copy() 在这种情况下,您创建该数组的副本。祝你好运)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章