用静态方法修改变量

Modify variables with a static method

我知道静态方法应该保持在最低限度,静态方法的整体思想是它们不与 class 交互,但有没有办法做到这一点?

要求:

class 具有 2 个属性的系统 - 可分割和可见,它们是空列表

静态方法register_divisible(name) 获取参数名称并将其附加到 divisible

示例:

class System:
    def __init__(self):
        self.divisible = []
        self.obvisible = []

    @staticmethod
    def register_divisible(name):
        self._divisible.append(name)

对于此要求,您必须在构造函数外部定义 divisibleobvisible,并使用 class 名称而不是 self

引用变量
class System:
    divisible = []
    obvisible = []

    @staticmethod
    def register_divisible(name):
        System.divisible.append(name)

#Instance        
a=System()
a.register_divisible('one')

#Static
System.register_divisible("two")

print(a.divisible) #prints ['one','two']
print(System.divisible) #prints ['one','two']