2005年06月08日 星期三 21:04
继续:模块和包
28:模块
模块就是一些函数和一些class的一个集合,放到一个*.py
例如 sys 就是一个模块 import就是加载一个模块,dir显示出模块里面的
变量成员
>>> import sys
>>> dir(sys)
['__doc__', '__name__', '__stderr__', '__stdin__', '__stdout__', 'argv',
'builtin_module_names', 'copyright', 'dllhandle', 'exc_info',
'exc_type',
'exec_prefix', 'executable', 'exit', 'getrefcount',
'hexversion', 'maxint',
'modules', 'path', 'platform', 'prefix', 'ps1', 'ps2',
'setcheckinterval',
'setprofile', 'settrace', 'stderr', 'stdin', 'stdout',
'version', 'winver']
我会写
文件 model_test.py ,但不知道 if __name__=="__main__":
是什么意思
"""
this is a module
"""
one = "a attribute"
def fun():
return "haha"
if __name__=="__main__":
fun()
>>> import model_test
>>> fun
>>> fun()
'haha'
>>>
>>> fun
>>> fun()
'haha'
>>> one
'a attribute'
>>> print __doc__
this is a module
>>>
模块也是个对象可以赋值的,如
>>> pp=model_test
>>> pp.fun
>>> pp.fun()
'haha'
要仔细体会Python 中 很多对象的概念
模块的使用要注意name space的概念
注意自己模块的名字不要和系统的名字一样
29:包
包packge 是一组module 的集合。
建立一个包的过程是这样的
1:建立一个目录如 testpackage
2:建立一个空文件 __int__.py (我不知道这个文件是做什么用的)
3:把要打包的*.py文件复制到该目录下
按照如下的方式访问就可以了
>>> import testpackage.testmodule
>>> testpackage.testmodule.sayHello()
Hello
包是一种防止名字冲突,我更喜欢叫,名字空间的污染
同时包里面还可以打包 用来更方便的管理模块。
以上是Python 模块和包 下一篇将是Python 的name space
邹胖小 2005年6月8日 祝大家快乐安康 今天高考结束了
2005年06月08日 星期三 23:02
在 05-6-8,Chao Zou<chao.zou at gmail.com> 写道: > 继续:模块和包 > 28:模块 > 模块就是一些函数和一些class的一个集合,放到一个*.py > 例如 sys 就是一个模块 import就是加载一个模块,dir显示出模块里面的 > 变量成员 > > >>> import sys > >>> dir(sys) > ['__doc__', '__name__', '__stderr__', '__stdin__', '__stdout__', 'argv', > 'builtin_module_names', 'copyright', 'dllhandle', 'exc_info', > 'exc_type', > 'exec_prefix', 'executable', 'exit', 'getrefcount', > 'hexversion', 'maxint', > 'modules', 'path', 'platform', 'prefix', 'ps1', 'ps2', > 'setcheckinterval', > 'setprofile', 'settrace', 'stderr', 'stdin', 'stdout', > 'version', 'winver'] > > 我会写 > 文件 model_test.py ,但不知道 if __name__=="__main__": 这是一个运行的技巧。当此模块为主程序时,__name__的值为__main__,当模块被导入时,它的值是模块名。因此它可以用来对一些模块作测试,这样可以单独运行这些模块,则 if __name__ == '__main__':就会执行。如果是被其它模块导入,则它不会执行。 > 是什么意思 > > """ > this is a module > """ > one = "a attribute" > > def fun(): > return "haha" > > if __name__=="__main__": > fun() > > >>> import model_test > >>> fun >> >>> fun() > 'haha' > >>> > >>> fun > > >>> fun() > 'haha' > >>> one > 'a attribute' > >>> print __doc__ > > this is a module > > >>> > > 模块也是个对象可以赋值的,如 > >>> pp=model_test > >>> pp.fun > > >>> pp.fun() > 'haha' > > 要仔细体会Python 中 很多对象的概念 > 模块的使用要注意name space的概念 > 注意自己模块的名字不要和系统的名字一样 > > 29:包 > 包packge 是一组module 的集合。 > 建立一个包的过程是这样的 > 1:建立一个目录如 testpackage > 2:建立一个空文件 __int__.py (我不知道这个文件是做什么用的) 相当于类的构造方法。在__init__.py(上面写错了)中还可以导入模块,方法,变量,从而改变包的结构,有可能是为了方便起见,一般不用。 > 3:把要打包的*.py文件复制到该目录下 > > 按照如下的方式访问就可以了 > >>> import testpackage.testmodule > >>> testpackage.testmodule.sayHello() > Hello > > 包是一种防止名字冲突,我更喜欢叫,名字空间的污染 > 同时包里面还可以打包 用来更方便的管理模块。 > > 以上是Python 模块和包 下一篇将是Python 的name space > > 邹胖小 2005年6月8日 祝大家快乐安康 今天高考结束了 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- I like python! My Donews Blog: http://www.donews.net/limodou New Google Maillist: http://groups-beta.google.com/group/python-cn
2005年06月08日 星期三 23:31
Chao Zou wrote:
> 继续:模块和包
> 28:模块
> 模块就是一些函数和一些class的一个集合,放到一个*.py
> 例如 sys 就是一个模块 import就是加载一个模块,dir显示出模块里面的
> 变量成员
dir返回一个对象的属性列表,模块也只不过是一个对象而已,你可以用dir(0)获
得0这个对象都有些什么属性。
[...]
> 我会写
> 文件 model_test.py ,但不知道 if __name__=="__main__":
> 是什么意思
当一个模块被直接执行(python model.py)时,__name__为"__main__";如果是
使用import语句导入的话,__name__为模块名。(你可以理解成主模块的名字叫
"__main__")。因此,if __name__ == "__main__"下的子句仅仅在直接执行本模
块的情况下才会被执行,import时则忽略之。
[...]
> 29:包
> 包packge 是一组module 的集合。
> 建立一个包的过程是这样的
> 1:建立一个目录如 testpackage
> 2:建立一个空文件 __int__.py (我不知道这个文件是做什么用的)
目录下必须有__init__.py文件才成为包。包被import时会自动执行__init__.py。
[...]
--
Qiangning Hong
______________________________________________
( Kaufman's First Law of Party Physics: )
( )
( Population density is inversely proportional )
( )
( to the square of the distance from the keg. )
----------------------------------------------
o
o
,__, | |
(oo)\| |___
(__)\| | )\_
| |_w | \
| | || *
Cower....
Zeuux © 2025
京ICP备05028076号