例如,我正在查看使用诸如方法之类的布尔变量的现有代码库,
class Manager(object):
def __init__(self):
self._on_elect_callback = None
self._on_revoke_callback = None
self.... = ... (..., event_listener = self._event)
def _event(self, type):
on_elect_callback = self._on_elect_callback
if type == SOME_CONSTANT:
....
if on_elect_callback:
on_elect_callback()
def do_this(self, on_elect_function):
self._on_elect_callback = on_elect_function
if self....:
on_elect_function()
Q1。我很好奇在最后一行的if条件下如何将on_elect_callback
用作函数与()一起使用。那不是布尔变量吗?我搜索了存储库,但没有定义。它在做什么?
Q2。另外,我想在__init__
中设置一个事件的回调函数可以使用的变量,例如“嘿,此事件类型为SOME_CONSTANT,因此将__init__
中的变量设置为“ ABCD”(或True
),如何我能实现吗?代码上方的方式是做到这一点吗?
[我正在查看一个使用布尔变量的现有代码库,例如方法,例如,类Manager(object):def __init __(self):self._on_elect_callback = None self ....
self._on_elect_callback
可能会像self._on_elect_callback = lambda: "I'm a function"
中那样被分配一个功能。我认为您认为它应该作为变量的原因是因为它在if表达式中使用。原因是,如果为self._on_elect_callback
分配了一个匿名函数,则该表达式将求值为True
,因为函数具有方法bool
,该方法默认情况下返回True
。关于第2季度,当然可以,函数是python中的对象,因此您可以将它们传递给高阶函数,或将它们分配为变量,如示例中所示