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 。我将传递我将使用的对象和变量,但我还将访问其他变量。
您可能想使用setattr
:
def set(object, name):
setattr(object, name, 5)
Run Code Online (Sandbox Code Playgroud)