0

这就是我所说的:

例如:

class User():
    def __init__(self, username, fullname):
        self.username = username
        self.fullname = fullname

    def update(self, arg, value):
        if arg is 'username':
            self.username = value
        elif arg is 'fullname':
            self.fullname = value

在更新函数中,我让用户输入一个他们想要更新的参数,arg,指定的值,value

如果我想在User类中添加更多参数,我需要更改更新函数以及添加的参数。如何创建一个接受类中任何现有参数的动态更新函数__init__

例如:如果我将emailarg 添加到__init__(),我需要将其添加到update()函数中:

if arg is 'email':
    self.email = value

^ 这会在一段时间后变得烦人。

我希望你明白我在问什么。如果您需要更多说明,请告诉我

4

1 回答 1

0

您只需要概括您的更新功能,如下所示:

def update(self, arg, value):
    setattr(self, arg, value)

然后...

>>> john = User('teraspora', 'John Lynch')
>>> john.username
'teraspora'
>>> john.update('username', 'Aladdin')
>>> john.username
'Aladdin'

希望这可以帮助!

于 2019-08-04T23:54:02.750 回答