django - 我尝试在 Python 3.x 中检查可调用变量
问题描述
我尝试检查名称是否可调用。从john我期望“我是一个可调用的”和从kate “我不是一个可调用的”。但我两次得到“我不是可调用的”
def name(first_name, last_name):
return first_name+' '+last_name
class Person:
def __init__(self, name):
self.name = name
if callable(self.name):
print("I'm a callable")
else:
print("I'm not a callable")
john = Person( name('John', 'Green'))
kate = Person("Kate")
结果是:
I'm not a callable
I'm not a callable
解决方案
您在两个示例中都传递了一个不可调用的 str 对象。相比:
>>> a = Person(name('John', 'Watson'))
I'm not a callable
>>> a = Person(name)
I'm a callable
name() 是可调用的,而它的返回值不是。
推荐阅读
- windows - Windows 上的 GIT 问题(文件名或扩展名太长)
- c# - 基于多列的 DISTINCT
- webrtc - TURN 服务器如何向 NAT 后面的对等方发送数据?
- typescript - 打字稿编译器(tsc)抛出错误,但仅在纱线脚本中使用时,否则工作正常
- vb.net - 如何根据 CheckedListBox 选择进行 SQL 查询
- r - 在R中查找URL末尾的数字范围
- python - Python - 根据输入生成变量列表理解表达式
- python - 从 python 2.7 移动到 3.6 时加载 Autovivification 文件时出现问题,KeyError: 'DictType'
- reactjs - 我在变异状态吗?如果是这样,有哪些解决方案可用?
- python - 为什么我的解析器在作业应该结束时不断循环打印语句?