如果可调用,内置函数可以获取对象的值吗?
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"
是否有一个内置函数可以执行我的 valueOrCalledValue
的操作?
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"
Is there a built-in function that does what my valueOrCalledValue
does?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试使用装饰器来使其整洁。
Try properties using decorators to make it tidy.
我不知道有什么内置函数可以做到这一点。或者,您可以使用“if else”表达式在一行中执行此操作:
将其分配给变量的工作方式相同:
I don't know any built-in function to do that. Alternatively, you could do this in one line using a "if else" expression:
assigning it to a variable works the same way:
用这个。它更简单,并且始终适用于“callable”的所有可能变体。
Use this. It's simpler and always works for all possible variants on "callable".