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)
这样的功能会是什么样子?
您可以使用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)