在python中设置字典键函数

Yan*_*hre 0 python oop dictionary

我想知道如何创建一个函数来设置字典的键。考虑以下类:

class Dog:
    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name
Run Code Online (Sandbox Code Playgroud)

现在让我们实例化对象:

a_dog = Dog("Berty", "Hollows")
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个函数,它返回名字或姓氏,具体取决于我传递给它的参数。我的想法是这样的:

def return_dogs_name(dog, get_dict_key(x)):
     return dog.get_dict_key(x)
Run Code Online (Sandbox Code Playgroud)

def get_dict_key(x):
    return x
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用。

我想要的输出看起来像

return_dogs_name(a_dog, get_dict_key("first_name"))
>>> Berty
Run Code Online (Sandbox Code Playgroud)

这样的功能会是什么样子?

Mau*_*yer 7

您可以使用getattr

class Dog:
    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

def return_dogs_name(dog, attrName):
     return getattr(dog, attrName)

a_dog = Dog("Berty", "Hollows")
print(return_dogs_name(a_dog, 'first_name'))
Run Code Online (Sandbox Code Playgroud)

出去:

Berty
Run Code Online (Sandbox Code Playgroud)