国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python程序設計入門(4)模塊和包

2019-11-25 18:22:22
字體:
來源:轉載
供稿:網友

Python語言功能非常強大,除了類之外,還有模塊和包的概念,這有點像perl,此處簡單說說包和模塊。

一、Python中的模塊

模塊――其實就是我們說的庫(lib)的概念,不過它不僅只是可以包含一系列函數,也可以包含類,python里是沒有像C語言之類,直接include某文件的,包正是這種類似的東西。

Python 引入模塊的方法有兩種:

1、import 模塊名(實際是對應的就是 文件名.py )

2、模塊名 = __import__("模塊文件名(不帶擴展名)")

也可以" import 模塊名  as  別名 "這樣用

例如:

復制代碼 代碼如下:
test.py
# -*- coding: gb18030 -*-
#引入模塊
import test_mod

#調用模塊里的函數
test_mod.my_func()

#調用模塊里的類
tc = test_mod.test_cls()
tc.test_func()

test_mod.py源碼如下:
# -*- coding: gb18030 -*-

def my_func():
    print 'I am a function in the module! '

class test_cls:
    def test_func(self):
        print 'I am a mothod in the class! '

調用模塊里的函數或類一定要用 “模塊名.類名|函數名” 的方式。

正是因為這種特性,python里很多 os.xx 、 sys.xx 之類的語法,但它不一定是對象(對象和非對象之間顯得極混亂,或者可以認為模塊也是一個對象吧,只是比較特殊),這是python語言的一個嚴重的缺點,不過當你習慣這些的時候,就比較容易讀懂python的腳本了。

sys 和 os 是 python 里最常用的模塊,需要了解一下它們。

二、Python中的包

包實際上就是對一系列模塊的封裝,以防止模塊名之間發生沖突,對于一個標準的python程序,通常的結構為:

復制代碼 代碼如下:
app.py
    appname
        __init__.py
        son_pack1
            __init__.py
            son_mod_1_1.py
            son_mod_1_2.py
         son_pack2
            __init__.py
            son_mod_2_1.py
            son_mod_2_2.py
        son_mod_1.py
        .......

如果學過Java就會明顯,這是一種按目錄來查找文件的方法,不過不同之處是每個目錄必須帶 __init__.py 否則將不會被識別為包的子目錄。

在有__version__、__all__、__path__ 三個特殊變量,可以指定,也可以讓這文件為空。

調用包里的類或函數的方法是:

包名.子包名.類名|函數名 

這實際上就相當于C++或C#里的名字空間。

在調用包時,需要注冊目錄和具體模塊的調用方法

如,要調用 son_mod_1_1.py

那么就是:

復制代碼 代碼如下:
appname.son_pack1.son_mod_1_1

此外還有一種方法是用  form 關鍵字,方法為:

復制代碼 代碼如下:
from appname.son_pack1 import son_mod_1_1

如果要喜引入 appname.son_pack1 里的所有模塊,那么為:

復制代碼 代碼如下:
from appname.son_pack1 import *


對于使用 import * 的情況,必須在 __init__.py 中用 __all__ 指明,如:

復制代碼 代碼如下:
__all__ = ["son_mod_1_1", "son_mod_1_2"]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庄河市| 巧家县| 云龙县| 宁南县| 图片| 石屏县| 紫金县| 句容市| 东城区| 嘉鱼县| 焦作市| 九寨沟县| 昌江| 乐陵市| 靖江市| 保定市| 梅河口市| 宁都县| 耒阳市| 德保县| 双鸭山市| 金门县| 彭水| 黑山县| 梁山县| 祁阳县| 沙湾县| 当涂县| 平罗县| 梅河口市| 勃利县| 稻城县| 犍为县| 墨江| 大渡口区| 闵行区| 日土县| 曲阜市| 房山区| 乌苏市| 乐陵市|