我正在尝试让任何人都可以使用foo函数。我如何确保他们正在导入具有特定别名的模块
def foo(object):
objdtypes = (list, tuple, np.ndarray, pd.core.series.Series)
if isinstance(object,objdtypes):
print("It's there")
现在我正在做这样的事情,如果他们一定要用不同的别名来称呼numpy和pandas,这似乎是不可持续的
def checkAlias():
while True:
try:
np.BUFSIZE
pd.BooleanDtype.name
return True
except NameError:
print("\n" +
"Please add the following commands to your script and try again:\n" +
"import numpy as np\n"+
"import pandas as pd")
return
在函数中导入包,而不是依赖全局范围
另外,不要使用
object
作为变量名,因为这将隐藏内置的object
当有人导入您的函数时,将使用您使用的别名导入任何必需的模块。例如,您可以创建一个名为
mymodule.py
的文件,其中包含:如果随后打开Python终端会话并使用:
它会很好地工作。如果在终端会话中使用不同的别名导入numpy,它甚至可以工作,例如
导入
myfunc
后,如果您查看:您可以看到,它包含numpy的预期别名(
np
),这就是它将使用的别名相关问题 更多 >
编程相关推荐