Python字符串属性

2022-01-13 00:00:00 python attributes

问题描述

我怎样才能完成这样的工作:

How can I achieve such job:

def get_foo(someobject, foostring):
    return someobject.foostring

IE:

如果我这样做 get_foo(obj, "name") 它应该调用 obj.name (将输入视为字符串,但我将其称为 attritube.

if I do get_foo(obj, "name") it should be calling obj.name (see input as string but I call it as an attritube.

谢谢


解决方案

使用内置函数 getattr.

Use the builtin function getattr.

getattr(object, name[, default])

返回object的命名属性的值.name 必须是字符串.如果字符串是对象属性之一的名称,则结果是该属性的值.例如,getattr(x, 'foobar') 等价于 x.foobar.如果命名属性不存在,则返回default,否则返回AttributeError 被引发.

Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object’s attributes, the result is the value of that attribute. For example, getattr(x, 'foobar') is equivalent to x.foobar. If the named attribute does not exist, default is returned if provided, otherwise AttributeError is raised.

相关文章