将参数从一个函数传递到另一个函数,其中参数在 Python 中具有相同的名称

Pass parameters from a function to another function where parameters have the same name in Python

假设我在一个函数中有一个参数,我想将其传递给另一个函数,并且两个参数的名称相同(因为它们代表相同的逻辑元素)- 我该如何很好地处理这个问题?

def myFunc1(df):
   myFunc2(df=df)

def myFunc2(someArg=None, df=None):
   # Do sth.

因为我时不时地运行陷入一些由于df=df的歧义引起的问题,我目前的做法主要是在不同的方法中重命名参数,例如因此在一种方法中它被称为 _df 而在另一种方法中它被称为 df。 但是,我认为这不是处理此问题的好方法。还有其他方法吗?

my current approach is mainly to rename the parameters in the different methods, e.g. so that in one method it is called _df and in the other one df.

不要。这更糟。


我同意人们所说的与您指定的案例没有明显歧义的说法。但是,如果您的目标是尊重任何强加的代码设计,那么您可以做一件事。

您在问题中声明参数命名相同因为它们代表相同的逻辑元素。问题是,您的功能没有,或者至少我希望他们没有。

所以您可以做的一件事是在您的 df 变量前加上函数内部应用的逻辑。

例如

def myFunc1(df):
    #sort df here
    myFunc2(sorted_df=df)

def myFunc2(someArg=None, sorted_df=None):

请注意,这是一个虚拟示例,用于显示可能的解决方案。您可以根据自己的需要进行调整。

此外,如果您实际上只使用初始 df 实例,那么如果您正确选择函数名称,就不会出现歧义。按照上述相同的逻辑,

def myFunc1(df):
    sort_df(df=df)

def sort_df(someArg=None, sorted_df=None):

对我来说,这似乎完全没问题。

我认为你的具体情况带来了某种歧义,因为你的函数显然被错误命名(可能是出于举例目的,但仍然如此。)