将类的属性名称作为函数中的参数传递

Edi*_*ipe 5 python class function

所以我有一个这样的课程:

class var:
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

object = var(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

我想创建一个函数,它将我的类的属性之一的名称作为参数,以创建如下所示的内容(示例):

def function(object, a):
    object.a = 5
Run Code Online (Sandbox Code Playgroud)

显然我可以将 'a' 作为字符串传递并进行一些 if 情况:

def function(object, a):

    if (a == 'x'):
        object.x = 5

    if (a == 'y'):
        object.y = 5

    if (a == 'z'):
        object.z = 5
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我必须将整个代码复制到 if 中(显然我想做的不仅仅是分配一个值)。我想知道是否有一个聪明的方法可以做到这一点。

编辑:

为了澄清一下,我的对象有更多变量:

class var:
    def __init__(self, x, y, z, a, b, c):
        self.x = x
        self.y = y
        self.z = z
        self.a = a
        self.b = b
        self.c = c
Run Code Online (Sandbox Code Playgroud)

我将在我的函数中访问这些。这就是为什么我不简单地传递 object.x 或 object.y 。我将传递我将使用的对象和变量,但我还将访问其他变量。

Dan*_*iel 2

您可能想使用setattr

def set(object, name):
    setattr(object, name, 5)
Run Code Online (Sandbox Code Playgroud)