24小时热门版块排行榜    

查看: 1223  |  回复: 4

独孤蚕

铁杆木虫 (著名写手)

[求助] Python模块导入问题

各位大侠,我是Python新手。请教关于模块导入的一个问题。有些模块下面还有子模块,那么导入模块后,子模块还需不要需要导入?比如os模块和os.path模块,它们是父模块和子模块的关系,还是平行的关系?
回复此楼

» 收录本帖的淘帖专辑推荐

python学习

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
独孤蚕: 金币+2, 有帮助 2012-09-28 13:24:17
模块导入后有哪些可用函数,可以通过内置函数dir()来查看
例如:
CODE:
>>> import os
>>> dir(os)
['F_OK', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'UserDict', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_copy_reg', '_execvpe', '_exists', '_exit', '_get_exports_list', '_make_stat_result', '_make_statvfs_result', '_pickle_stat_result', '_pickle_statvfs_result', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'close', 'closerange', 'curdir', 'defpath', 'devnull', 'dup', 'dup2', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fstat', 'fsync', 'getcwd', 'getcwdu', 'getenv', 'getpid', 'isatty', 'kill', 'linesep', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'popen2', 'popen3', 'popen4', 'putenv', 'read', 'remove', 'removedirs', 'rename', 'renames', 'rmdir', 'sep', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'startfile', 'stat', 'stat_float_times', 'stat_result', 'statvfs_result', 'strerror', 'sys', 'system', 'tempnam', 'times', 'tmpfile', 'tmpnam', 'umask', 'unlink', 'unsetenv', 'urandom', 'utime', 'waitpid', 'walk', 'write']
>>> 'path' in dir(os)
True
>>>  

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-09-26 21:29:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuhuisfp

金虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
独孤蚕: 金币+1, 有帮助 2012-09-28 13:24:41
简单说导入一个模块只是在使用其函数,子模块时增加限定词,当你导入一个模块后,其中的子模块均可以调用,只要在限定词中加上相应子模块名就可以了。

以你上面说的为例,即导入OS模块后,用OS.path作限定词就可以使用子模块path中的函数.....

导入方法一:
        import os
将导入OS模块,如果你要使用OS模块就的函数,子模块需要使用OS来限定。如:
# 调用函数popen执行ls命令
os.popen('ls').read()
# 使用子模块path下的函数isdir()......
os.path.isdir('/home')           #True

推荐使用这各方法导入模块,因为它可以防止自己定义的函数,类与系统模块的重复冲突。

导入方法二:
        from os import *
将导入OS模块下的所有子模块和函数,变量等,可以直接用相应名称调用。如

# 调用函数popen执行ls命令
popen('ls').read()
# 使用子模块path下的函数isdir()......
path.isdir('/home')           #True

这种方法不推荐,容易造成混乱。
3楼2012-09-26 22:06:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤蚕

铁杆木虫 (著名写手)

引用回帖:
2楼: Originally posted by libralibra at 2012-09-26 21:29:52
模块导入后有哪些可用函数,可以通过内置函数dir()来查看
例如:
>>> import os
>>> dir(os)

>>> 'path' in dir(os)
True
>>>  ...

大侠,python中很多次看到你的身影了,看来是高手啊。建议你可以写一个关于python方面的心得体会啊,让我等拜读一下。
4楼2012-09-28 13:26:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ccblovelr

木虫 (职业作家)

学习下,望继续
!!!
5楼2015-08-18 16:47:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 独孤蚕 的主题更新
信息提示
请填处理意见