我试图创建一个变量,当我调用或使用该变量时,它会运行一个函数来执行操作并返回某个变量。一个例子会更有意义:
def establish_client():
a = None
if True:
a = 'A'
return a
>>> print establish_client
'A'
可以这样做吗?基本上有一种方法可以运行方法并返回一些不使用括号的东西吗?
答案 0 :(得分:1)
在一般情况下:否。
但是有一些技术可能会接近。
属性允许对象中的成员使用类似的东西。
class Demo(object):
@property
def establish_client(self):
a = None
if True:
a = 'A'
return a
d = Demo()
print d.establish_client
但属性不适用于局部变量或全局变量。
此外,您可以使用__str__
进行字符串转换,但仅当您以将变量转换为字符串的方式使用该变量时才需要此行为。通常情况并非如此。请参阅mescalinum答案,了解如何做到这一点。
答案 1 :(得分:0)
注意:以下是黑客攻击,并且可能有很多理由不这样做。
您可以使用class
和__str__()
方法在该行上取得一些成就:
class foo:
def __init__(self):
pass
def __str__(self):
a = None
if True:
a = 'A'
return a
测试:
>>> f=foo()
>>> print(f)
'A'
>>>
注意:它仅适用于将参数明确视为字符串的print和函数。
例如,如果要将其字符串值分配给另一个变量,则必须使用str(f)
,以便最终使用括号。