JavaScript函数对象字面量的Python等价实现咨询
等价的Python实现方案
当然可以!Python里函数是一等公民,你可以用字典来实现和你给出的JavaScript构造完全等价的效果——把函数作为值存在字典中,然后通过键名来访问并调用它们。
方式1:使用lambda表达式(适合短函数)
这种写法和你JS里的匿名函数风格最接近:
my_functions = { 'greet': lambda name: f"Hello, {name}", 'farewell': lambda time: f"See you {time}" }
调用方式完全符合你的需求:
greet_marta = my_functions['greet']("Marta") print(greet_marta) # 输出: Hello, Marta see_you_tomorrow = my_functions['farewell']("tomorrow") print(see_you_tomorrow) # 输出: See you tomorrow
方式2:使用常规函数定义(适合复杂逻辑)
如果你的函数需要处理更复杂的逻辑,用def定义会更清晰,之后把函数对象直接存入字典即可:
def greet(name): return f"Hello, {name}" def farewell(time): return f"See you {time}" my_functions = { 'greet': greet, 'farewell': farewell }
调用方式和上面完全一致,没有任何区别。
补充说明
Python的字典和JS的对象在这个场景下的行为几乎一致:你可以通过['键名']的方式获取对应的函数,紧接着加括号传参就能完成调用,和你在JS里的操作逻辑完全匹配。
内容的提问来源于stack exchange,提问作者Manuel Perez Heredia
相关产品推荐
相关产品推荐

