我正在尝试在python中创建一个方法,它接受1-n个参数,在每个参数上调用相同的方法并返回结果.例如;
(注意这是伪代码,我只是在运行时输入这些方法/语法 - 对python来说是新的)
def get_pid(*params):
pidlist = []
for param in params:
pidlist.add(os.getpid(param))
return pidlist
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想做点什么
x, y = get_pid("process1", "process2")
Run Code Online (Sandbox Code Playgroud)
我可以在哪里添加尽可能多的参数 - 并且方法可以像'pythonic'一样紧凑.我认为可能有一种比循环参数和附加到列表更好的方法吗?
有什么建议/提示吗?
你的代码已经有效了.您的函数接受0个或多个参数,并返回每个函数调用的结果.它只有一个小错误; 你应该使用list.append(); 没有list.add()方法.
您可以在此处使用列表推导来在一行中执行相同的工作:
def get_pid(*params):
return [os.getpid(param) for param in params]
Run Code Online (Sandbox Code Playgroud)
你可以内联这个; 使它成为一个生成器表达式:
x, y = (os.getpid(param) for param in ("process1", "process2"))
Run Code Online (Sandbox Code Playgroud)
您也可以使用此map()功能:
x, y = map(os.getpid, ("process1", "process2"))
Run Code Online (Sandbox Code Playgroud)