如果可调用,内置函数可以获取对象的值?

Joe*_*Joe 2 python callable

class Thing():
    xyz = "I'm a string"

class Truc():
    def xyz(self):
        return "I'm a function"

def valueOrCalledValue(input):
    if callable(input):
        return input()
    else:
        return input

thing = Thing()
print valueOrCalledValue(thing.xyx)

>>> "I'm a string"

truc = Truc()
print valueOrCalledValue(truc.xyz)

>>> "I'm a function"
Run Code Online (Sandbox Code Playgroud)

是否有内置功能可以完成我的valueOrCalledValue工作?

nei*_*eil 6

使用装饰器尝试使用属性使其变得整洁.