最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python程序設(shè)計(jì)入門(4)模塊和包

 更新時(shí)間:2014年06月16日 09:43:07   投稿:shichen2014  
Python語言功能非常強(qiáng)大,除了類之外,還有模塊和包的概念,這有點(diǎn)像perl,本文主要介紹了包和模塊,需要的朋友可以參考下

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

一、Python中的模塊

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

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

1、import 模塊名(實(shí)際是對應(yīng)的就是 文件名.py )

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

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

例如:

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

#調(diào)用模塊里的函數(shù)
test_mod.my_func()

#調(diào)用模塊里的類
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! '

調(diào)用模塊里的函數(shù)或類一定要用 “模塊名.類名|函數(shù)名” 的方式。

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

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

二、Python中的包

包實(shí)際上就是對一系列模塊的封裝,以防止模塊名之間發(fā)生沖突,對于一個(gè)標(biāo)準(zhǔn)的python程序,通常的結(jié)構(gòu)為:

復(fù)制代碼 代碼如下:
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
        .......

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

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

調(diào)用包里的類或函數(shù)的方法是:

包名.子包名.類名|函數(shù)名 

這實(shí)際上就相當(dāng)于C++或C#里的名字空間。

在調(diào)用包時(shí),需要注冊目錄和具體模塊的調(diào)用方法

如,要調(diào)用 son_mod_1_1.py

那么就是:

復(fù)制代碼 代碼如下:
appname.son_pack1.son_mod_1_1

此外還有一種方法是用  form 關(guān)鍵字,方法為:

復(fù)制代碼 代碼如下:
from appname.son_pack1 import son_mod_1_1

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

復(fù)制代碼 代碼如下:
from appname.son_pack1 import *


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

復(fù)制代碼 代碼如下:
__all__ = ["son_mod_1_1", "son_mod_1_2"]

相關(guān)文章

最新評論

庐江县| 五河县| 如皋市| 霍邱县| 新邵县| 上思县| 双峰县| 庆阳市| 综艺| 乳山市| 肇州县| 桂林市| 枞阳县| 论坛| 高安市| 淮南市| 昌都县| 磐安县| 盐池县| 张家界市| 嵊泗县| 武山县| 辽源市| 文山县| 六安市| 永福县| 轮台县| 万载县| 获嘉县| 荣昌县| 清徐县| 宝鸡市| 清流县| 色达县| 五台县| 本溪市| 临江市| 临海市| 木兰县| 昌黎县| 阿巴嘎旗|