Python中的模块和包的区别 python中的模块、库、包有什么区别

python\u4e2d\u7684\u6a21\u5757\uff0c\u5e93\uff0c\u5305\u6709\u4ec0\u4e48\u533a\u522b

1.python\u6a21\u5757\u662f\uff1apython\u6a21\u5757\uff1a\u5305\u542b\u5e76\u4e14\u6709\u7ec4\u7ec7\u7684\u4ee3\u7801\u7247\u6bb5\u4e3a\u6a21\u5757\u3002
\u8868\u73b0\u5f62\u5f0f\u4e3a\uff1a\u5199\u7684\u4ee3\u7801\u4fdd\u5b58\u4e3a\u6587\u4ef6\u3002\u8fd9\u4e2a\u6587\u4ef6\u5c31\u662f\u4e00\u4e2a\u6a21\u5757\u3002sample.py \u5176\u4e2d\u6587\u4ef6\u540dsmaple\u4e3a\u6a21\u5757\u540d\u5b57\u3002
\u5173\u7cfb\u56fe\uff1a

2.python\u5305\u662f\uff1a\u5305\u662f\u4e00\u4e2a\u6709\u5c42\u6b21\u7684\u6587\u4ef6\u76ee\u5f55\u7ed3\u6784\uff0c\u5b83\u5b9a\u4e49\u4e86\u7531n\u4e2a\u6a21\u5757\u6216n\u4e2a\u5b50\u5305\u7ec4\u6210\u7684python\u5e94\u7528\u7a0b\u5e8f\u6267\u884c\u73af\u5883\u3002\u901a\u4fd7\u4e00\u70b9\uff1a\u5305\u662f\u4e00\u4e2a\u5305\u542b__init__.py \u6587\u4ef6\u7684\u76ee\u5f55\uff0c\u8be5\u76ee\u5f55\u4e0b\u4e00\u5b9a\u5f97\u6709\u8fd9\u4e2a__init__.py\u6587\u4ef6\u548c\u5176\u5b83\u6a21\u5757\u6216\u5b50\u5305\u3002
\u5e38\u89c1\u95ee\u9898\uff1a
\u5f15\u5165\u67d0\u4e00\u7279\u5b9a\u8def\u5f84\u4e0b\u7684\u6a21\u5757
\u4f7f\u7528sys.path.append(yourmodulepath)
\u5c06\u4e00\u4e2a\u8def\u5f84\u52a0\u5165\u5230python\u7cfb\u7edf\u8def\u5f84\u4e0b\uff0c\u907f\u514d\u6bcf\u6b21\u901a\u8fc7\u4ee3\u7801\u6307\u5b9a\u8def\u5f84
\u5229\u7528\u7cfb\u7edf\u73af\u5883\u53d8\u91cf export PYTHONPATH=$PYTHONPATH:yourmodulepath\uff0c
\u76f4\u63a5\u5c06\u8fd9\u4e2a\u8def\u5f84\u94fe\u63a5\u5230\u7c7b\u4f3c/Library/Python/2.7/site-packages\u76ee\u5f55\u4e0b
\u597d\u7684\u5efa\u8bae\uff1a
\u7ecf\u5e38\u4f7f\u7528if __name__ == '__main__'\uff0c\u4fdd\u8bc1\u5199\u5305\u65e2\u53ef\u4ee5import\u53c8\u53ef\u4ee5\u72ec\u7acb\u8fd0\u884c\uff0c\u7528\u4e8etest\u3002
\u591a\u6b21import\u4e0d\u4f1a\u591a\u6b21\u6267\u884c\u6a21\u5757\uff0c\u53ea\u4f1a\u6267\u884c\u4e00\u6b21\u3002\u53ef\u4ee5\u4f7f\u7528reload\u6765\u5f3a\u5236\u8fd0\u884c\u6a21\u5757\uff0c\u4f46\u4e0d\u63d0\u5021\u3002
\u5e38\u89c1\u7684\u5305\u7ed3\u6784\u5982\u4e0b\uff1a
package_a\u251c\u2500\u2500 __init__.py\u251c\u2500\u2500 module_a1.py\u2514\u2500\u2500 module_a2.pypackage_b\u251c\u2500\u2500 __init__.py\u251c\u2500\u2500 module_b1.py\u2514\u2500\u2500 module_b2.py
main.py
\u5982\u679cmain.py\u60f3\u8981\u5f15\u7528packagea\u4e2d\u7684\u6a21\u5757modulea1\uff0c\u53ef\u4ee5\u4f7f\u7528:
from package_a import module_a1
import package_a.module_a1
\u5982\u679cpackagea\u4e2d\u7684modulea1\u9700\u8981\u5f15\u7528packageb\uff0c\u90a3\u4e48\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cpython\u662f\u627e\u4e0d\u5230packageb\u3002\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528sys.path.append('../'),\u53ef\u4ee5\u5728packagea\u4e2d\u7684__init__.py\u6dfb\u52a0\u8fd9\u53e5\u8bdd\uff0c\u7136\u540e\u8be5\u5305\u4e0b\u5f97\u6240\u6709module\u90fd\u6dfb\u52a0* import __init_\u5373\u53ef\u3002
\u5173\u7cfb\u56fe\uff1a

3.\u5e93\uff08library\uff09\u5e93\u7684\u6982\u5ff5\u662f\u5177\u6709\u76f8\u5173\u529f\u80fd\u6a21\u5757\u7684\u96c6\u5408\u3002\u8fd9\u4e5f\u662fPython\u7684\u4e00\u5927\u7279\u8272\u4e4b\u4e00\uff0c\u5373\u5177\u6709\u5f3a\u5927\u7684\u6807\u51c6\u5e93\u3001\u7b2c\u4e09\u65b9\u5e93\u4ee5\u53ca\u81ea\u5b9a\u4e49\u6a21\u5757\u3002

1.python\u6a21\u5757\u662f\uff1apython\u6a21\u5757\uff1a\u5305\u542b\u5e76\u4e14\u6709\u7ec4\u7ec7\u7684\u4ee3\u7801\u7247\u6bb5\u4e3a\u6a21\u5757\u3002
\u8868\u73b0\u5f62\u5f0f\u4e3a\uff1a\u5199\u7684\u4ee3\u7801\u4fdd\u5b58\u4e3a\u6587\u4ef6\u3002\u8fd9\u4e2a\u6587\u4ef6\u5c31\u662f\u4e00\u4e2a\u6a21\u5757\u3002sample.py \u5176\u4e2d\u6587\u4ef6\u540dsmaple\u4e3a\u6a21\u5757\u540d\u5b57\u3002
\u5173\u7cfb\u56fe\uff1a

2.python\u5305\u662f\uff1a\u5305\u662f\u4e00\u4e2a\u6709\u5c42\u6b21\u7684\u6587\u4ef6\u76ee\u5f55\u7ed3\u6784\uff0c\u5b83\u5b9a\u4e49\u4e86\u7531n\u4e2a\u6a21\u5757\u6216n\u4e2a\u5b50\u5305\u7ec4\u6210\u7684python\u5e94\u7528\u7a0b\u5e8f\u6267\u884c\u73af\u5883\u3002\u901a\u4fd7\u4e00\u70b9\uff1a\u5305\u662f\u4e00\u4e2a\u5305\u542b__init__.py \u6587\u4ef6\u7684\u76ee\u5f55\uff0c\u8be5\u76ee\u5f55\u4e0b\u4e00\u5b9a\u5f97\u6709\u8fd9\u4e2a__init__.py\u6587\u4ef6\u548c\u5176\u5b83\u6a21\u5757\u6216\u5b50\u5305\u3002
\u5e38\u89c1\u95ee\u9898\uff1a
\u5f15\u5165\u67d0\u4e00\u7279\u5b9a\u8def\u5f84\u4e0b\u7684\u6a21\u5757
\u4f7f\u7528sys.path.append(yourmodulepath)
\u5c06\u4e00\u4e2a\u8def\u5f84\u52a0\u5165\u5230python\u7cfb\u7edf\u8def\u5f84\u4e0b\uff0c\u907f\u514d\u6bcf\u6b21\u901a\u8fc7\u4ee3\u7801\u6307\u5b9a\u8def\u5f84
\u5229\u7528\u7cfb\u7edf\u73af\u5883\u53d8\u91cf export PYTHONPATH=$PYTHONPATH:yourmodulepath\uff0c
\u76f4\u63a5\u5c06\u8fd9\u4e2a\u8def\u5f84\u94fe\u63a5\u5230\u7c7b\u4f3c/Library/Python/2.7/site-packages\u76ee\u5f55\u4e0b
\u597d\u7684\u5efa\u8bae\uff1a
\u7ecf\u5e38\u4f7f\u7528if __name__ == '__main__'\uff0c\u4fdd\u8bc1\u5199\u5305\u65e2\u53ef\u4ee5import\u53c8\u53ef\u4ee5\u72ec\u7acb\u8fd0\u884c\uff0c\u7528\u4e8etest\u3002
\u591a\u6b21import\u4e0d\u4f1a\u591a\u6b21\u6267\u884c\u6a21\u5757\uff0c\u53ea\u4f1a\u6267\u884c\u4e00\u6b21\u3002\u53ef\u4ee5\u4f7f\u7528reload\u6765\u5f3a\u5236\u8fd0\u884c\u6a21\u5757\uff0c\u4f46\u4e0d\u63d0\u5021\u3002
\u5e38\u89c1\u7684\u5305\u7ed3\u6784\u5982\u4e0b\uff1a
package_a\u251c\u2500\u2500 __init__.py\u251c\u2500\u2500 module_a1.py\u2514\u2500\u2500 module_a2.pypackage_b\u251c\u2500\u2500 __init__.py\u251c\u2500\u2500 module_b1.py\u2514\u2500\u2500 module_b2.py
main.py
\u5982\u679cmain.py\u60f3\u8981\u5f15\u7528packagea\u4e2d\u7684\u6a21\u5757modulea1\uff0c\u53ef\u4ee5\u4f7f\u7528:
from package_a import module_a1
import package_a.module_a1
\u5982\u679cpackagea\u4e2d\u7684modulea1\u9700\u8981\u5f15\u7528packageb\uff0c\u90a3\u4e48\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cpython\u662f\u627e\u4e0d\u5230packageb\u3002\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528sys.path.append('../'),\u53ef\u4ee5\u5728packagea\u4e2d\u7684__init__.py\u6dfb\u52a0\u8fd9\u53e5\u8bdd\uff0c\u7136\u540e\u8be5\u5305\u4e0b\u5f97\u6240\u6709module\u90fd\u6dfb\u52a0* import __init_\u5373\u53ef\u3002
\u5173\u7cfb\u56fe\uff1a

3.\u5e93\uff08library\uff09\u5e93\u7684\u6982\u5ff5\u662f\u5177\u6709\u76f8\u5173\u529f\u80fd\u6a21\u5757\u7684\u96c6\u5408\u3002\u8fd9\u4e5f\u662fPython\u7684\u4e00\u5927\u7279\u8272\u4e4b\u4e00\uff0c\u5373\u5177\u6709\u5f3a\u5927\u7684\u6807\u51c6\u5e93\u3001\u7b2c\u4e09\u65b9\u5e93\u4ee5\u53ca\u81ea\u5b9a\u4e49\u6a21\u5757\u3002

1、模块(Module)就是包含代码的文件,不一定是Python代码,有四种代码类型的模块:

•使用Python写的程序( .py文件)

•C或C++扩展(已编译为共享库或DLL文件)

•包(包含多个模块)

•内建模块(使用C编写并已链接到Python解释器内)

使用模块可以提高代码的可维护性和重复使用,还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,所以编写自己的模块时,不必考虑名字会与其他模块冲突,但要注意尽量不要与内置函数名字冲突。

2、包(Package)就是包含模块文件的目录,目录名称就是包名称,目录中可以包含目录,子目录也是包,但包名称应该包含上一级目录的名称。Python引入了按目录来组织模块是为了避免模块名冲突,不同包中的模块名可以相同。

注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是包名。



1、模块和包的概念
模块是Python程序架构的一个核心概念,指的是一个包含Python代码的文件,拥有独立的名字空间。Python程序可以通过import语句来使用一个模块中的代码。包则是Python模块的一种组织形式,将多个模块组合在一起,形成一个大的Python工具库。包通常是一个拥有__init__.py文件的目录,它定义了包的属性和方法。
2、模块和包的功能
模块和包在Python中都具有非常重要的功能,可以使Python程序变得更加模块化、清晰、易于维护和扩展。模块可以用来定义自己的函数、类和变量,也可以用来执行一些Python代码和逻辑。而包则是将模块组合在一起,可以方便地管理和调用其中的模块。此外,模块和包也为Python提供了丰富的标准库和第三方库,可以实现各种各样的功能和任务。
3、模块和包的使用
在Python中,使用import语句可以调用模块和包中的内容。import语句可以指定模块或包的位置和名称,例如:
import math
import as
import sys.path
如果需要使用包中的某个模块,可以使用点号分隔符,例如:
import pack1.module1
from pack1 import module1
4、模块和包的区别
从功能和使用上来看,模块和包有很多共同点。但是它们都有明显的区别,如下所示:
实现方式不同:模块由一个.py文件组成,而包则是由多个模块组成的一个目录,其中必须包含__init__.py文件来实现包的功能。
命名方式不同:模块的命名比较自由,可以使用任意字符或下划线开头,而包的命名则需要遵循一定的规则,例如不能使用数字或中横线等字符。
导入方式不同:在导入模块时,可以直接使用import语句,也可以使用from语句。而在导入包时,只能使用from语句。
作用域不同:模块拥有自己的局部作用域,而包则拥有更高级的命名空间。

  • Python鍩虹鐭ヨ瘑-瀛︿範
    绛旓細妯″潡鍜屽寘锛孭ython閲囩敤妯″潡鍖栬璁★紝import銆乫rom...import鍜宖rom...import *鍚勬湁鍏剁敤銆傚寘鍒欐槸妯″潡鐨勯泦鍚堬紝閫氳繃鐗瑰畾瀵煎叆璇彞锛屼綘鍙互鏂逛究鍦拌皟鐢ㄥ叾涓鐨勬ā鍧銆傞潰鍚戝璞$紪绋嬪垯寮鍚簡涓鎵囨柊鐨勫ぇ闂紝绫诲畾涔夊睘鎬у拰琛屼负锛屽璞℃槸绫荤殑瀹炰緥锛岀户鎵垮拰澶氭佽浠g爜鏇村叿鎵╁睍鎬у拰鐏垫椿鎬сPython鐨鏍囧噯搴撳re銆乨atetime銆乷s绛...
  • python涓殑鍖呮湁浠涔鐗圭偣
    绛旓細鍖呮槸涓涓寘鍚涓妯″潡鐨勭洰褰曪紝瀹冨彲浠ユ湁涓涓壒娈婄殑__init__.py鏂囦欢鏉ュ垵濮嬪寲鍖咃紝浠ュ強鎺у埗鍖呯殑瀵煎叆琛屼负銆傞氳繃浣跨敤鍖咃紝鎴戜滑鍙互灏嗕唬鐮佺粍缁囧緱鏇存湁鏉$悊锛屾洿鏂逛究鍏朵粬寮鍙戜汉鍛樼殑浣跨敤銆傚叾娆★紝Python鐨鍖呭叿鏈夊彲閲嶇敤鎬х殑鐗圭偣銆傞氳繃灏嗙浉鍏冲姛鑳界殑浠g爜缁勭粐鍦ㄥ悓涓涓寘涓紝鎴戜滑鍙互杞绘澗鍦板湪涓嶅悓鐨勯」鐩腑閲嶇敤杩欎簺浠g爜銆備緥...
  • python涓ā鍧鏄粈涔?
    绛旓細浣滅敤锛氬彲浠ヨ皟鐢ㄥ叾浠朠ython鏂囦欢鐨勪唬鐮侊紝鍔熻兘锛屽彲浠ユ洿鐏垫椿鐨勫疄鐜板拰浣跨敤锛屾坊鍔犲悇绉嶆晥鏋溿備娇鐢細鎴戜滑閫氳繃import(鍏抽敭瀛)鍘诲鍏ユā鍧 妯″潡鐨勫垎绫 Python涓妯″潡鍒嗕笁澶х被锛氬唴缃ā鍧椼佺涓夋柟妯″潡銆佽嚜瀹氫箟妯″潡銆1銆佸唴缃ā鍧 鍐呯疆妯″潡锛氬湪瀹夎Python涔嬪悗鑷甫鐨勬ā鍧锛屽彲浠ョ洿鎺ヤ娇鐢紝姣斿time锛宱s锛宺e锛宺andom&hellip锛&...
  • python鐨勬ā鍧鏄粈涔
    绛旓細鍏朵粬Python绋嬪簭鍙互閫氳繃瀵煎叆璇彞浣跨敤杩欎釜妯″潡涓殑鍔熻兘銆備负浜嗗垎浜垨閲嶇敤妯″潡锛屽彲浠ュ皢妯″潡鏂囦欢鏀剧疆鍦ㄥ悎閫傜殑浣嶇疆锛屾垨鑰呭湪绯荤粺璺緞涓坊鍔犳ā鍧楃殑璺緞锛岃繖鏍峰叾浠栫▼搴忓氨鍙互杞绘澗鎵惧埌骞朵娇鐢ㄨ繖涓ā鍧椾簡銆傚浜庡ぇ鍨嬬殑寮婧愰」鐩垨鍏叡妯″潡锛屽彲浠ラ氳繃Python鐨勫寘鍒嗗彂鏂瑰紡鍙戝竷鍒癙yPI涓婁緵鍏朵粬寮鍙戣呬娇鐢ㄣ傛讳箣锛Python鐨勬ā鍧鏄竴绉嶉噸瑕...
  • pycharm浣跨敤鍒涘缓directory鍜Python package鐨勫尯鍒
    绛旓細璇ユ枃浠涓嶱ython鐨import鏈哄埗鏈夊叧锛岃繖鍏充箮鍒颁綘鐨勫摢浜.py鏂囦欢鏄澶栧彲璁块棶鐨勩傛湁浜涙椂鍊欙紝濡傛灉涓涓寘涓嬫湁寰堝妯″潡锛屽湪璋冪敤鏂筰mport濡傛澶氭ā鍧楁槸寰堣垂浜嬶紝涓斾笉浼橀泤鐨勶紝姝ゆ椂鍙互閫氳繃淇敼_ _ init_ _.py鏉ュ畬鎴愯浠诲姟銆 鍦╛ _ init_ .py涓畾涔夌壒娈婂彉閲廮 all_ ,灏嗚鍖呭惈鐨勬ā鍧澶嶅埗缁欒鍙橀噺锛屼緥濡傚湪Image/...
  • python涓import鏄粈涔堟剰鎬?
    绛旓細Python涓殑import璇彞鏄敤鏉ヨ皟鐢妯″潡鐨銆備竴銆乵odule 閫氬父妯″潡涓轰竴涓枃浠讹紝鐩存帴浣跨敤import鏉ュ鍏ュ氨濂戒簡銆傚彲浠ヤ綔涓簃odule鐨勬枃浠剁被鍨嬫湁锛俻y"銆侊紓锛巔yo"銆侊紓pyc"銆侊紓pyd"銆侊紓so"銆侊紓dll"銆備簩銆乸ackage 閫氬父鍖呮绘槸涓涓洰褰曪紝鍙互浣跨敤import瀵煎叆鍖咃紝鎴栬協rom + import鏉ュ鍏ュ寘涓殑閮ㄥ垎妯″潡銆傚寘鐩綍涓嬩负棣栫殑涓...
  • Python鐨from import鍜宨mport鐨勫尯鍒
    绛旓細涓銆乮mport鍜宖rom import鐨勫尯鍒:import 鍙兘瀵煎叆妯″潡銆佸瓙鍖呫佸寘, 鑰屼笉鑳藉鍏妯″潡涓殑绫汇佸嚱鏁般佸彉閲忕瓑 from import 鍙互瀵煎叆妯″潡銆佸瓙鍖呫佸寘銆佺被銆佸嚱鏁般佸彉閲忎互鍙婂湪鍖呯殑__init__.py涓凡缁忓鍏ョ殑鍚嶅瓧 ps: 浣嗘槸涓よ呴兘鍙互鐢╝s缁欏鍏ョ殑鍚嶅瓧閲嶅懡鍚 浜屻佸寘瀵煎叆鐨勬敞鎰忎簨椤 涓嶈兘鍦ㄥ鍏ョ殑璺緞涓娇鐢ㄥ凡缁忓鍏...
  • python妯″潡涓鍑芥暟鐨勫尯鍒鍜岃仈绯?
    绛旓細Python妯″潡鍜Python鍑芥暟閮芥槸Python涓殑閲嶈姒傚康锛屼絾鏄畠浠殑浣滅敤鍜岀敤娉曟湁鎵涓嶅悓銆Python妯″潡鎸囩殑鏄寘鍚玃ython浠g爜鐨勬枃浠讹紝閫氬父浠.py鏂囦欢鎵╁睍鍚嶇粨灏俱傛ā鍧椾腑鍙互鍖呭惈澶氫釜鍑芥暟銆佺被鍜屽彉閲忕瓑锛屽苟涓斿彲浠ラ氳繃瀵煎叆璇ユā鍧楁潵璁块棶鍏朵腑鐨勫唴瀹广侾ython涓湁璁稿鍐呯疆鐨勬ā鍧锛屽math銆乺andom绛夛紝涔熷彲浠ヨ嚜瀹氫箟妯″潡銆傛ā鍧楃殑浣滅敤鏄...
  • python涓ā鍧楃殑浣滅敤鏄粈涔?
    绛旓細鍚屾牱锛孞ava 鍜 C# 蹇呴』瑕佹湁涓涓寘鍚 Main 鏂规硶鐨勪富绫绘潵浣滀负绋嬪簭鍏ュ彛銆傝 Python 鍒欐湁涓嶅悓锛屽畠灞炰簬鑴氭湰璇█锛屼笉鍍忕紪璇戝瀷璇█閭f牱鍏堝皢绋嬪簭缂栬瘧鎴愪簩杩涘埗鍐嶈繍琛岋紝鑰屾槸鍔ㄦ佺殑閫愯瑙i噴杩愯銆備篃灏辨槸浠庤剼鏈涓琛屽紑濮嬭繍琛岋紝娌℃湁缁熶竴鐨勫叆鍙c備竴涓 Python 婧愮爜鏂囦欢闄や簡鍙互琚洿鎺ヨ繍琛屽锛岃繕鍙互浣滀负妯″潡锛堜篃灏辨槸...
  • python涓鍚玙_init__.py 鐨勬枃浠舵墠浼氳璁や綔鏄竴涓寘,涓轰粈涔堝憿,杩欎釜鏂囦欢...
    绛旓細__init__.py 鏂囦欢鐨勪竴涓富瑕佷綔鐢ㄦ槸灏嗘枃浠跺す鍙樹负涓涓Python妯″潡锛Python 涓殑姣忎釜妯″潡鐨勫寘涓紝閮芥湁__init__.py 鏂囦欢 2銆佹壒閲忓紩鍏ワ紙瀹氫箟__all__鐢ㄦ潵妯$硦瀵煎叆锛夋垜浠湪python涓鍏ヤ竴涓寘鏃讹紝瀹為檯涓婃槸瀵煎叆浜嗗畠鐨刜_init__.py鏂囦欢锛岃繖鏍锋垜浠彲浠ュ湪__init__.py鏂囦欢涓壒閲忓鍏ユ垜浠墍闇瑕鐨勬ā鍧锛岃屼笉...
  • 扩展阅读:java javascript ... python和c++学哪个好 ... python调用包里的模块 ... java properties ... python初学编程必背 ... python模块大全下载 ... 学了python再学c++好学吗 ... python入门 ... 学python有前途吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网