将参数从一个函数传递到另一个函数,其中参数在 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):
对我来说,这似乎完全没问题。
我认为你的具体情况带来了某种歧义,因为你的函数显然被错误命名(可能是出于举例目的,但仍然如此。)
假设我在一个函数中有一个参数,我想将其传递给另一个函数,并且两个参数的名称相同(因为它们代表相同的逻辑元素)- 我该如何很好地处理这个问题?
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):
对我来说,这似乎完全没问题。
我认为你的具体情况带来了某种歧义,因为你的函数显然被错误命名(可能是出于举例目的,但仍然如此。)