1

我是Python初学者,刚刚开始使用包。

当您在导入包后调用函数时,您是否总是必须引用它才能使其工作,或者这只是一种好习惯?

例如,我正在pandas使用ipython.

import pandas
import numpy as np

df = pandas.read_csv('/Users/admin/Documents/data.csv')

我是否总是必须使用包名来调用函数?如果我不这样做,最好总是参考它吗?

4

5 回答 5

6

如果您调整导入语句,则不需要包名称。

例如:

from pandas import read_csv
import numpy as np

df = read_csv('/Users/admin/Documents/data.csv')

请参阅此相关问题: Importing modules in Python - best practice

于 2012-06-11T20:16:18.827 回答
2

不,您不必这样做;您可以使用from [package] import [symbol]表单,它将 [symbol] 导入到本地命名空间。也就是说,除非您的应用程序是高度面向对象的(而不是以模块为中心的),否则它会变得既危险(意外地在本地重用导入的名称)又令人困惑(很难弄清楚某些东西来自哪里以及是什么)它打算这样做)当您不使用包名称时。

于 2012-06-11T20:16:33.040 回答
1

如果您有对某个对象的本地引用,则可以使用该引用。如果不这样做,那么您必须先引用该模块,然后再为该对象访问它。

于 2012-06-11T20:14:14.677 回答
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')

但是,通常不鼓励使用这种方法,因为它很难看出函数/类/变量的来源。

有关更多信息,请参见http://docs.python.org/tutorial/modules.html

于 2012-06-11T20:19:28.307 回答
0

如果您将导入语句更改为

from pandas import *

然后您可以直接引用该函数:

df = read_csv('/Users/admin/Documents/data.csv')

这会将导入包中的所有内容带入您当前的命名空间。您还可以分段指定应导入的内容。正如下面的评论中所讨论的,这两种方法各有利弊。

在我看来,请使用在您当前的上下文中最容易混淆的方法。:)

于 2012-06-11T20:16:52.043 回答