将多个参数传递给函数时,是否有特定的约定?

时间:2019-01-12 11:51:56

标签: python function arguments conventions

我刚开始使用Python并在python中创建一个接收4个参数的主函数。然后在该函数中,调用另外两个需要相同4个参数的函数。

以下哪个更“ Pythonic”?

A)

def function_main(arg1, arg2, arg3, arg4):
    innner_function(arg1, arg2, arg3, arg4)
    second_inner_function(arg1, arg2, arg3, arg4)

B)

def function_main(arg1, arg2, arg3, arg4):
    arg_list = [arg1, arg2, arg3, arg4]
    innner_function(arg_list)
    second_inner_function(arg_list)

第二个似乎更干燥,但是我不确定是否有这样的东西。哪个被认为是最佳使用方式?

1 个答案:

答案 0 :(得分:0)

我认为这是设计问题,而不是“样式”约定,我建议您避免两者都使用。此外,即使出于说明目的,也请不要使用“ function_ *”或类似名称命名“工作伪代码”。

根据问题,我们将其缩小一点以得到更广阔的视野。考虑一些方面(请牢记OOP做法):

•出于结构目的和可读性,主要存在一种主要方法(或Python中的定义) •相同原语的数组很可能不应作为单独的元素传递,但是:

•如果您需要将这些值分开使用,请像这样使它们保持嵌套功能
•如果不这样做,则在a之前将它们分配给变量,对象,枚举或常量(请小心,考虑设计)
•如果您的元素是互不相关的内容的不同数据类型,请也将它们分开
•如果它们不同,但出于上下文原因应放在一起,请考虑创建一个类并使用一个对象
•如果您的元素是更大数据保留的子集,请考虑使用适当的数据结构(例如XML,JSON甚至数据库),并在适当的OO中进行设计

•(在设计中总会错过某些东西,习惯它,永不停止反思)

我的建议是继续练习。这是一个仅在初学者水平存在的问题,随着您不断增长的设计经验,该问题将很快消失。