Python:什么是callable?

简单来说,Python中能被调用(called)的东西就是callable,例如function。使用内置的callable函数可以检查一个对象是不是callable。callable函数返回True说明是callable,返回False说明不是callable。

那么,Python中到底哪些东西是callable呢?有下面几种情况:

  • 函数(function)
  • __call__ 方法的类的实例(instance)
  • 类的方法(method)

下面的代码实例展示了这几种情况:

# 函数是callable
def f():
    return 5


print(callable(f))  # True

f1 = f
print(callable(f1))  # True

# 数字不是callable
num = 5
print(callable(num))  # False


# 类是callable,如果类中有方法__call__,类的实例也是callable
class A:
    def __call__(self):
        print('This is A')


# This proves that class is callable
a = A()
print(callable(a))  # True
a()


# 如果类中没有方法__call__,类的实例不是callable
class B:
    def __init__(self):
        print("This is B")


b = B()


b()  # TypeError: 'B' object is not callable


# 类的方法是callable
class C:
    def m1(self):
        print('This is m1')


print(callable(C.m1))  # True
C().m1()

最后,还有一种是callable的情况,如果对象里有非空的tp_call成员(c语言结构体),这涉及到和C语言的互操作,这里不再展开,如果感兴趣可以参考Call Protocol — Python 3.10.4 documentation

### starRC、LEF 和 DEF 文件的 EDA 工具使用教程 #### 关于 starRC 的使用说明 starRC 是由 Synopsys 开发的一款用于寄生参数提取 (PEX) 的工具,在 detail routing 完成之后被调用,以提供精确的电阻电容延迟分析数据[^2]。该工具能够处理复杂的多层互连结构并支持多种工艺节点。 对于 starRC 的具体操作指南,通常可以从官方文档获取最权威的信息。访问 Synopsys 官方网站的技术资源页面,可以找到最新的产品手册以及应用笔记等资料。此外,还可以通过在线帮助系统获得交互式的指导和支持服务。 #### LEF 和 DEF 文件格式解析及其在 Cadence 中的应用 LEF(Library Exchange Format)和 DEF(Design Exchange Format)是两种广泛应用于集成电路布局布线阶段的标准文件格式之一[^3]。前者主要用于描述标准单元库中的元件几何形状;后者则记录了整个芯片版图的设计信息,包括但不限于各个模块的位置关系、网络连接情况等重要细节。 当涉及到这些文件类型的编辑或读取时,Cadence 提供了一系列强大的平台级解决方案,比如 Virtuoso Layout Editor 就可以直接打开并修改 LEF/DEF 格式的项目工程。为了更好地理解和运用这两种文件格式,建议参阅 Cadence 发布的相关培训材料或是参加其举办的专项课程学习活动。 ```bash # 示例命令:查看 LEF 或 DEF 文件内容 cat my_design.lef cat my_design.def ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值