python中的动态方法

2024-04-26 11:51:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在python中创建一个方法,它接受1-n个参数,对每个参数调用相同的方法并返回结果。例如:

(请注意,这是伪代码,我只是动态键入这些方法/语法—对python来说是新的)

def get_pid(*params):
    pidlist = []
    for param in params:
        pidlist.add(os.getpid(param))
    return pidlist

理想情况下,我想做一些像

x, y = get_pid("process1", "process2")

在这里我可以添加任意多的参数-并且方法尽可能的“pythonic”和紧凑。我认为有一个更好的方法比循环参数和附加到一个列表?你知道吗

有什么建议/提示吗?你知道吗


Tags: 方法代码inaddfor参数get键入
2条回答

你的代码已经运行了。函数接受0个或多个参数,并返回每个函数调用的结果。其中只有一个小错误;应该使用list.append();没有list.add()方法。你知道吗

您可以使用列表理解在一行中完成相同的工作:

def get_pid(*params):
    return [os.getpid(param) for param in params]

您可以将其内联;使其成为生成器表达式:

x, y = (os.getpid(param) for param in ("process1", "process2"))

也可以使用map()函数:

x, y = map(os.getpid, ("process1", "process2"))

可以使用yield创建生成器:

def get_pid(*params):
    for param in params:
        yield os.getpid(param)

x, y = get_pid("process1", "process2")
print(x, y)

相关问题 更多 >