发新话题
打印

[python] Python模块import问题

Python模块import问题

模块可以像函数定义一样包含执行语句。这些语句通常用于初始化模块。它们只在模块第一次导入时执行一次。6.1

对应于定义模块中所有函数的全局语义表,每一个模块有自己的私有语义表。因此,模块作者可以在模块中使用一些全局变量,不会因为与用户的全局变量冲突而引发错误。另一方面,如果你确定你需要这个,可以像引用模块中的函数一样获取模块中的全局变量,形如:modname.itemname。

模块可以导入(import)其它模块。习惯上所有的import语句都放在模块(或脚本,等等)的开头,但这并不是必须的。被导入的模块名入在本模块的全局语义表中。

import语句的一个变体直接从被导入的模块中导入命名到本模块的语义表中。例如:

>>> from fibo import fib, fib2
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
这样不会从局域语义表中导入模块名(例如,fibo没有定义)。

这里还有一个变体从模块定义中导入所有命名:

>>> from fibo import *
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
这样可以导入所有除了以下划线(_)开头的命名。

红色的那句话没看懂...

哪位高人给指点一二?
春有百花秋有月,夏有凉风冬有雪,若无闲事挂心头,便是人间好时节!

TOP

刚看了python不到一周,一起学习:)
我知道的import的用法:
1. import fibo
这样访问的时候一定要写成
fibo.fib(500), fibo不能省略

2. from fibo import fib
这样访问的时候一定要写成
fib(500), 不能加上fibo

3. from fibo import *
和2一样,只不过将所有fibo里的函数变量等都import进来了,不用一一列出名字。

TOP

你写的文字,看起来有些困难,感觉像是台湾人对语言的描述。
我是这样理解你所说的:这里是在使用from……import的语句,这个语句的好处就是可以使用模块或类中的对象不用写成 (模块.对象)的这种形式,而直接使用类中的对象,因为它已经把类或模块中的所有对象包含进来了。但是个人感觉可读性不是很好,而且在不小心的时候容易和主程序中的其他变量产生冲突。直接使用import 是最好的,尽管在使用类或模块中的对象写法上有些罗嗦(模块.对象),但是可读性很好。
我也是一个python新手,胡言乱语一翻。

[ 本帖最后由 eudemon 于 2008-8-26 22:54 编辑 ]

TOP

发新话题