Python 怎么定义 class do_something(do_what=arg_a)这样的接受传入参数有等号类?

2019-08-17 05:59:23 +08:00
 ladypxy

如题,这种有等号的应该怎么处理。要实现的是根据等号前后不同,可以执行不同的命令。 比如 do_something(do_print=“ a ”): print(“ a ”) do_something(do_list=“ b ”): print(“ b ”)

2188 次点击
所在节点    Python
7 条回复
wgq2633
2019-08-17 06:14:45 +08:00
我暂时用函数说一下我的思路,不理解 LZ 为什么要用类。

def do_something(**kwargs):
if "do_print" in kwargs:
print(kwargs[do_print"])
if "do_list" in kwargs:
print(kwargs[do_list"])
不知道能否满足楼主需求
关键字 “可变参数 关键字参数”可直达。
jw19961019
2019-08-17 06:59:55 +08:00
看基础吧。别拿其他语言在 Python 里瞎弄。class 有多种定义方式。
leishi1313
2019-08-17 07:11:10 +08:00
建议搜索一下“ X Y Problem ”
renmu123
2019-08-17 07:56:06 +08:00
简单直接传进来匿名函数
ladypxy
2019-08-17 08:00:11 +08:00
@wgq2633 感谢。目的是写个 api,通过传入不同的参数,然后根据等号左侧的部分,来进行不同的操作。
jmc891205
2019-08-17 13:21:20 +08:00
Python 没有重载构造函数
可以给参数默认值自己去实现
或者使用 classmethod 自己定义另外的用来构造一个对象的函数
j0hnj
2019-08-17 20:06:02 +08:00
元类 metaclass

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/592611

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX