python - lambda 表达式如何绑定(bind)到一个类?

标签 python

如果我在 Python 中设置如下所示的类,因为我希望创建的 lambda 表达式应该绑定(bind)到类 A。我不明白为什么当我将 lambda 放入列表中时,如 g 它没有绑定(bind)。

class A(object):
  f = lambda x,y: (x + y)
  g = [lambda x,y: (x + y)]


a = A()

#a.f bound
print a.f
<bound method A.<lambda> of <__main__.A object at 0xb743350c>>

#a.g[0] not bound
print a.g[0]
<function <lambda> at 0xb742d294>

为什么一个绑定(bind)而另一个不绑定(bind)?

最佳答案

f 是绑定(bind)的,因为根据定义它是类的一部分。 g 不是方法。 g 是一个列表。这个列表的第一个元素恰好是一个 lambda 表达式。这与 g 是否在类定义中定义无关。

关于python - lambda 表达式如何绑定(bind)到一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530110/

相关文章:

python - 使用 python 循环两个列表,使用一个作为列表列表的索引,另一个作为要 append 的值

python - PyQt QDialog 返回响应是或否

python - 如何从中心裁剪 OpenCV 图像

python - 如何将 Csv 文件流式传输到 BigQuery?

python - 正确使用 scipy.optimize.fmin_bfgs

python - 打开 txt 文件,float() 的无效文字

python - 在 Python 2.7 中高效读取 800 GB XML 文件

python - 批量保存复杂对象 SQLAlchemy

python - 如何从 Facebook 应用程序创建应用程序粉丝专页的墙贴?

python - 使用 AWS lambda 函数使用 boto3 python 将 S3 文件从 zip 转换为 gzip