重命名 Python 函数指针
-
使用 Python 中的
getattr()
函数使用指针重命名函数 -
使用 Python 中的
import
语句使用指针重命名函数 -
使用 Python 中的
package.function
语句使用指针重命名函数 - 在 Python 中使用指针和引用字典重命名函数
本教程将讨论在 Python 中使用指针重命名函数的不同方法。
使用 Python 中的 getattr()
函数使用指针重命名函数
我们有一个名为 functions.py
的文件,其中我们定义了两个名为 square
和 cube
的函数。
我们可以使用几种方法以其他名称访问这些函数。有一个众所周知的概念,即 Python 中的一切都是对象。
众所周知,对象是通过引用调用的。即使 Python 不支持用户定义的指针,我们仍然可以使用以下方法解决这个问题。
我们的第一个方法涉及在 Python 中使用 getattr()
函数。getattr()
是一个内置函数,它返回一个对象的命名属性的值。
它可以与 __import__()
函数 一起使用。__import__()
是另一个内置函数,用于在 Python 代码中导入包、库和模块。
导入后,我们可以通过将 getattr()
函数的返回值分配给新变量来为原始函数分配一个新名称。代码片段演示了这种现象在 Python 中的作用。
pkg = __import__('functions')
func = getattr(pkg, 'cube')
print(func(3))
输出:
27
我们使用 __import__()
函数导入文件 functions.py
并将其值分配给 pkg
对象。
然后我们在 pkg
对象中获取原始 cube()
函数并将其值分配给 func
变量。我们现在可以只使用 func()
函数调用 functions.cube
函数。
最后,我们用 func(3)
打印了 3 的立方。
使用 Python 中的 import
语句使用指针重命名函数
此方法涉及使用 import
语句重命名函数。
import
语句用于在我们的代码中导入包、库或模块。我们可以使用 as
语句和 import
语句来重命名我们的包、库或模块。
使用 import
和 as
语句重命名我们的包的代码片段如下。
from functions import square as sq
print(sq(2))
输出:
4
我们在 functions.py
文件中将 square()
函数导入为 sq
。
现在,我们可以通过编写 sq()
在当前文件中使用 square()
函数。这种方法非常方便且易于理解。
但是,如果我们想为一个函数使用多个名称,则此方法会失败。下一节中提到的方法解决了这个问题,并提供了一种解决方案,它还可以为一个函数处理多个名称。
使用 Python 中的 package.function
语句使用指针重命名函数
我们的 square()
函数在 functions.py
文件中,我们可以通过首先在当前代码中导入 funcitons.py
文件并编写 function.square()
来引用此函数。
这用作对原始函数的引用。我们可以将其值分配给代码中的任何变量,并使用该变量来调用函数。
下面提供的代码片段使我们能够了解此方法的工作原理。
import functions
sq = functions.square
print(sq(3))
输出:
9
通过将 functions.square
的引用分配给 sq
,我们将 functions.square()
函数重命名为 sq()
。
然后我们使用重命名的 sq()
函数来计算并打印 3
的平方。在为同一个函数分配多个名称时,此方法非常有用。
为此,我们必须将 functions.square
的值分配给多个变量。下面的代码示例向我们展示了如何实现这一点。
import functions
sq = functions.square
sq1 = functions.square
sq2 = functions.square
print(sq(3))
print(sq1(3))
print(sq2(3))
输出:
9
9
9
我们在同一个代码文件中用三个不同的名字调用了同一个 functions.square()
函数。此方法适用于函数的多个名称。
它也可以用于多种功能。这种方法唯一的问题是它有点代码密集,感觉非常冗余。
下一节讨论的方法解决了这个问题。
在 Python 中使用指针和引用字典重命名函数
我们可以使用原始函数的引用字典来为多个原始函数分配多个名称。
这种方法实现起来很简单。我们必须为原始参考分配一个键。
然后,我们可以通过使用带有分配键的字典名称来访问对原始函数的引用。以下代码片段显示了此方法的工作实现。
import functions
functionsdict = {
"square": functions.square,
"cube": functions.cube
}
c = functionsdict["cube"]
print(c(3))
输出:
27
我们创建了一个字典,为原始函数的所有引用分配一个键。然后我们使用 functionsdict
字典和相应的键 cube
将 functions.cube
重命名为 c
。
最后,我们使用 c()
函数来打印 3
的立方。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn