我是Python
初学者,刚刚开始使用包。
当您在导入包后调用函数时,您是否总是必须引用它才能使其工作,或者这只是一种好习惯?
例如,我正在pandas
使用ipython
.
import pandas
import numpy as np
df = pandas.read_csv('/Users/admin/Documents/data.csv')
我是否总是必须使用包名来调用函数?如果我不这样做,最好总是参考它吗?
如果您调整导入语句,则不需要包名称。
例如:
from pandas import read_csv
import numpy as np
df = read_csv('/Users/admin/Documents/data.csv')
不,您不必这样做;您可以使用from [package] import [symbol]
表单,它将 [symbol] 导入到本地命名空间。也就是说,除非您的应用程序是高度面向对象的(而不是以模块为中心的),否则它会变得既危险(意外地在本地重用导入的名称)又令人困惑(很难弄清楚某些东西来自哪里以及是什么)它打算这样做)当您不使用包名称时。
如果您有对某个对象的本地引用,则可以使用该引用。如果不这样做,那么您必须先引用该模块,然后再为该对象访问它。
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')
但是,通常不鼓励使用这种方法,因为它很难看出函数/类/变量的来源。
如果您将导入语句更改为
from pandas import *
然后您可以直接引用该函数:
df = read_csv('/Users/admin/Documents/data.csv')
这会将导入包中的所有内容带入您当前的命名空间。您还可以分段指定应导入的内容。正如下面的评论中所讨论的,这两种方法各有利弊。
在我看来,请使用在您当前的上下文中最容易混淆的方法。:)