我是Python
初学者,刚刚开始使用套餐。
当您在导入包之后调用函数时,是否始终必须引用它才能使其正常工作,或者这只是一种好的做法?
例如,我正在使用pandas
中的ipython
包。
import pandas
import numpy as np
df = pandas.read_csv('/Users/admin/Documents/data.csv')
我是否总是必须使用包名来调用该函数?如果我不这样做,最好总是参考它吗?
答案 0 :(得分:6)
如果您调整import语句,则不需要包名称。
例如:
from pandas import read_csv
import numpy as np
df = read_csv('/Users/admin/Documents/data.csv')
答案 1 :(得分:2)
不,你不必;您可以使用from [package] import [symbol]
表单,它将[符号]导入到本地名称空间。也就是说,除非您的应用程序是面向对象的(而不是以模块为中心),否则通常不会,它变得既危险(意外地在本地重用导入的名称)又令人困惑(很难弄清楚某些东西来自哪里以及什么当你不使用包名时,它就是这样做的。
答案 2 :(得分:1)
如果您有对象的本地引用,则可以使用该引用。如果不这样做,则必须先引用模块,然后访问该对象。
答案 3 :(得分:1)
python中的import语句有几种不同的形式。您可以这样做只导入read_csv函数:
from pandas import read_csv
df = read_csv('/path/to/file')
或者这样导入pandas模块中的所有内容,这样就不必在pandas.
前面添加前缀:
from pandas import *
df = read_csv('/path/to/file')
但通常不鼓励这种方法,因为它很难看出函数/类/变量的来源。
答案 4 :(得分:0)
如果您将导入语句更改为
from pandas import *
然后你可以直接引用这个函数:
df = read_csv('/Users/admin/Documents/data.csv')
这会将导入的包中的所有内容都带到当前的命名空间中。您还可以指定要导入的分段内容。正如下面的评论中所讨论的,两种方法都有利有弊。
在我看来,使用您当前背景下最不容易混淆的方法。 :)