首页 > 解决方案 > 了解类函数中的继承(python)

问题描述

我无法理解为什么当类函数中的局部变量被更新时,调用函数中的相同变量也会发生变化。

在这个简单的示例中,当class_func被调用时,它将从父func级获取变量 my_var,并且在每个实例中 my_var 将返回到[].

但是在第一次c.class_func被调用后,my_var在函数func中发生了变化。我不明白为什么会这样?

欣赏任何见解。

class my_class :
    def class_func(self, my_var):
        if my_var == [] :
            my_var += [1]

def func (classes, my_var) :
    for c in classes :
        print(my_var)
        c.class_func(my_var)
        print(my_var)


class1 = my_class()
class2 = my_class()

func(classes=[class1, class2], my_var=[])

输出:

[]
[1]
[1]
[1]

标签: pythonclass

解决方案


推荐阅读