You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的lambda表达式中为property属性赋值

问题原因说明

你遇到的报错是两个Python语法特性的限制共同导致的:

  1. 海象运算符:=的左操作数仅支持普通变量、下标引用等类型,不支持给property属性赋值
  2. lambda表达式只能容纳单个表达式,常规的属性赋值语句y.enabled = x.enabled属于语句类型,不能直接写到lambda的函数体中。
优雅实现方案

最推荐的写法是直接定义独立的同步函数,完全不需要使用setattr,可读性和扩展性都是最好的:

def sync_enabled(source: Foo):
    b.enabled = source.enabled

a.register_event_listener(sync_enabled)

如果需要同步多组实例,还可以封装成生成同步函数的工厂方法,适配更多场景:

def create_sync_target(target: Foo):
    def sync_enabled(source: Foo):
        target.enabled = source.enabled
    return sync_enabled

# 用法
a.register_event_listener(create_sync_target(b))
# 也可以用来同步其他实例
a.register_event_listener(create_sync_target(c))

内容的提问来源于stack exchange,提问作者QuaternionsRock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 02:54:01