Python 用于调用函数的变量集
我希望这个问题不要显得太天真或愚蠢,但我只想得到一个明确的答案作为确认 是否可以设置一个变量来调用函数 i、 e 然后,如果您只键入/使用了Python 用于调用函数的变量集,python,Python,我希望这个问题不要显得太天真或愚蠢,但我只想得到一个明确的答案作为确认 是否可以设置一个变量来调用函数 i、 e 然后,如果您只键入/使用了var,它将输出test 换句话说,如果函数在Python中从不需要(或接受)参数,是否有另一种不用括号调用函数的方法 我假设这是不可能的,因为您总是需要使用“()”来调用函数,但我很好奇是否有例外情况?您想得太多了: def func(): print "test" var = func var() # calls func() 在python
var
,它将输出test
换句话说,如果函数在Python中从不需要(或接受)参数,是否有另一种不用括号调用函数的方法
我假设这是不可能的,因为您总是需要使用“()”来调用函数,但我很好奇是否有例外情况?您想得太多了:
def func():
print "test"
var = func
var() # calls func()
在python中,函数是对象,因此可以将var
分配给函数func
,现在它是对func
的引用。您还可以将变量分配给类定义,因为它们也是对象:
class A(object):
def __init__(self):
self.data = 1
B = A # B is the same class type as A
myA = B() # constructs an A
print(myA.data) # prints "1"
你想得太多了:
def func():
print "test"
var = func
var() # calls func()
在python中,函数是对象,因此可以将var
分配给函数func
,现在它是对func
的引用。您还可以将变量分配给类定义,因为它们也是对象:
class A(object):
def __init__(self):
self.data = 1
B = A # B is the same class type as A
myA = B() # constructs an A
print(myA.data) # prints "1"
一般来说,没有。除了注释中提到的之外,您将始终需要应用参数列表(即使它是空的
()
)来实际调用函数。否则,您不会调用函数,而是将函数本身作为值引用
您可以在Python的命令行解释器上轻松地重现这一点:
>>> def func():
... return "foo"
...
>>> func() # Actually call the function; statement returns the function's return value
'foo'
>>> func # Reference the function as value; statement returns *the function itself*
<function func at 0x7f2c7a65b938>
>>> var = func # Assign the function value to another variable
>>> var # Now "var" references the same function as "func"...
<function func at 0x7f2c7a65b938>
>>> var() # ...and can also be called as a function
'foo'
>>>
>>def func():
... 返回“foo”
...
>>>func()#实际调用函数;语句返回函数的返回值
“福”
>>>func#引用函数作为值;语句返回*函数本身*
>>>var=func#将函数值赋给另一个变量
>>>var#现在“var”引用与“func”相同的函数。。。
>>>var()#…也可以作为函数调用
“福”
>>>
一般来说,没有。除了注释中提到的之外,您将始终需要应用参数列表(即使它是空的()
)来实际调用函数。否则,您不会调用函数,而是将函数本身作为值引用
您可以在Python的命令行解释器上轻松地重现这一点:
>>> def func():
... return "foo"
...
>>> func() # Actually call the function; statement returns the function's return value
'foo'
>>> func # Reference the function as value; statement returns *the function itself*
<function func at 0x7f2c7a65b938>
>>> var = func # Assign the function value to another variable
>>> var # Now "var" references the same function as "func"...
<function func at 0x7f2c7a65b938>
>>> var() # ...and can also be called as a function
'foo'
>>>
>>def func():
... 返回“foo”
...
>>>func()#实际调用函数;语句返回函数的返回值
“福”
>>>func#引用函数作为值;语句返回*函数本身*
>>>var=func#将函数值赋给另一个变量
>>>var#现在“var”引用与“func”相同的函数。。。
>>>var()#…也可以作为函数调用
“福”
>>>
属性
装饰器允许您将方法伪装为普通属性。这对于应该是计算值的内容非常有用,例如倒计时计时器中剩余的时间。这确保了每次引用该变量时都会动态更新该变量的值,因为它实际上是一个方法调用
>>> class O(object):
... def __init__(self):
... self.x = 0
... @property
... def x_is_negative(self):
... return self.x < 0
...
>>> a = O()
>>> a.x_is_negative
False
>>> a.x = -1
>>> a.x_is_negative
True
>>O类(对象):
... 定义初始化(自):
... self.x=0
... @所有物
... def x_为负(自身):
... 返回self.x<0
...
>>>a=O()
>>>a.x_为负
错误的
>>>a.x=-1
>>>a.x_为负
符合事实的
属性
装饰器允许您将方法伪装为普通属性。这对于应该是计算值的内容非常有用,例如倒计时计时器中剩余的时间。这确保了每次引用该变量时都会动态更新该变量的值,因为它实际上是一个方法调用
>>> class O(object):
... def __init__(self):
... self.x = 0
... @property
... def x_is_negative(self):
... return self.x < 0
...
>>> a = O()
>>> a.x_is_negative
False
>>> a.x = -1
>>> a.x_is_negative
True
>>O类(对象):
... 定义初始化(自):
... self.x=0
... @所有物
... def x_为负(自身):
... 返回self.x<0
...
>>>a=O()
>>>a.x_为负
错误的
>>>a.x=-1
>>>a.x_为负
符合事实的
对于命令行的使用,还有另一个技巧:\uuuuu repr\uuuu
。
我用它来调用一个函数,只需一个字符
假设您要调用f()
:
对于命令行的使用,还有另一个窍门:\uuu repr\uu
。
我用它来调用一个函数,只需一个字符
假设您要调用f()
:
此问题的可能重复项并不意味着与decorators相关。您可以在适当的类上使用@属性
decorator来键入var
,并将其输出test
。是否要将其包含在列表中?@MarkN,是,您的问题的答案是否定的。此问题的可能重复项并不意味着与decorators相关。您可以在适当的类上使用@property
decorator来键入var
,并将其输出到test
。是否要将其包含在列表中?@MarkN,是的,你的问题的答案是否定的。换句话说,否定?没有()语法。换句话说,否定?没有()语法。这就是我所指的,谢谢。我只是好奇,是否有其他可能的方法来调用函数,而不遵循[Python中]括号的正常使用……这就是我所指的,谢谢。我只是好奇,是否有其他可能的方法来调用函数,而不遵循[Python中]括号的正常使用……我用这个想法做了一个装饰器:@without()
\def():从命令行解释器打印“Hey”
\callbyf
。我用这个想法做了一个装饰师:@Without()
\def():从命令行解释器打印“Hey”
\Call byf
。