[Python代码使用带有()的函数/方法之类的变量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python代码使用带有()的函数/方法之类的变量?相关的知识,希望对你有一定的参考价值。
例如,我正在查看使用诸如方法之类的布尔变量的现有代码库,
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中的对象,因此您可以将它们传递给高阶函数,或将它们分配为变量,如示例中所示以上是关于[Python代码使用带有()的函数/方法之类的变量?的主要内容,如果未能解决你的问题,请参考以下文章
Delphi中复制带有String的记录结构时不能使用Move之类的内存操作函数
如何使用 PHP 执行 sed -i '/^MAIL_DRIVER=/s/=.*/=log/' .env 之类的东西来更新 laravel dotenv 文件中的变量值