python 函數如何封裝

不是不可以,只是這樣做沒有意義,另外變數作用域的問題,會使得操作變得很復雜

⑵ 如何創建封裝python 模塊庫

Python模塊的安裝方法: 1. 單文件模塊:直接把文件拷貝到$python_dir/lib 2. 多文版件模塊,帶setup.py:權python setup.py install 3. egg文件,類似Java的jar: 1) 下載ez_setup.py,運行python ez_setup 2) easy_install *.egg 雖然Python的模塊...

⑶ 我想自己寫一個python函數封裝成SDK方便以後調用,但是在這個函數編寫引入了不少import包,該怎麼操作

寫最上面。寫裡面有可能會重復import同一個包,浪費內存

⑷ Python 封裝報錯

把index添加一個參數改為 def index(self,param=None)

⑸ 怎麼將python代碼封裝成一個程序

如何將python程序封裝成exe可執行文件

將python程序直接轉成exe程序的方法很多,主流的工具有PyInstaller、cx_freeze、py2exe等,論及優缺點,可謂各有千秋。然而,再好的工具在使用的時候也會遇到各種各樣的問題。這里無法比較哪個好那個壞,不同工具對不同類型程序的處理能力不同,也許你用這個方法轉化出來的程序出問題了,換個方法就行了。本文主要介紹py2exe的安裝和使用。

py2exe的安裝

  • 點此下載和64位python2.7配套版本。

  • 傻瓜式安裝,就是一步一步往下點。

  • py2exe的使用

  • 將python安裝路徑添加到系統環境變數Path值中。(若已添加,請忽略此步)

  • 建立setup.py文件,文件中輸入以下代碼:

  • from distutils.core import setupimport py2exe

  • setup(console=["將要轉換的文件名稱.py"])123

  • 在終端(cmd)輸入以下命令:
    setup.py py2exe
    這樣便完成了從.py文件到 .exe文件的轉換,生成的軟體在dist文件夾內。

  • 這里需要注意的是:不同python程序不能一概而論,具體情況需要具體討論。

    例:當運行出錯,提示缺少sip文件時,setup.py可修改為:

  • from distutils.core import setupimport py2exe

  • setup(console=[{"script":"main.py"}], options={"py2exe":{"includes":["sip"]}})123

  • 例:當你不想dos窗口停留,需要其一閃而過時,setup.py可修改為:

  • from distutils.core import setup

  • import py2exe


  • setup(window=['name.py']) #這里console改為window那麼dos窗口不出現

⑹ Python中的封裝有什麼作用

日常生活中可以看到很多的汽車,汽車包括車輪、發動機、車架等零部件。可以在車架上安裝車輪,然後安裝發動機,最後安裝其他零件,刷漆。就形成了汽車。這個過程,是把各種零件放到車架上的過程。但思考一下,對於開車的人,需要關注車的內部結構嗎?答案顯然是否定的。汽車對外提供了方向盤、油門等去調用內部結構從而進行行駛。由這個例子可以總結出,汽車就是各種零件經過封裝得到的產物,同時提供給駕駛人操控汽車需要的介面設備。這就是生活中的封裝。

我們可以看到生活中的封裝有很多好處。具體有如下的幾條好處:

①隱藏了實現細節,在使用時沒必要關注具體實現。

②安全性好,內部細節隱藏了,就不能隨意破壞。

③對外提供介面方便使用。

④可維護性好,方便修改實現,修改完成後,對外介面不變,對用戶使用無影響。

⑤方便重用,任何一個會開車的人都可以駕駛汽車,只要對外的介面相同就行了。

總之,封裝就是將抽象得到的屬性和方法形成「類」,並將類內部信息進行隱藏,對外公開介面的機制。封裝限制從類外訪問,從而提升代碼安全性和可維護性。

封裝的內涵是把抽象得到的屬性和方法進行了封裝,對於方法,隱藏了具體的實現,提供了方法名供使用者調用。對於成員變數也進行隱藏,通過方法對外提供訪問介面。通過封裝,限制了直接訪問成員變數,通過方法,增加驗證邏輯,提高了安全性和可維護性。

封裝的外延是按照內聚性、一致性、封裝性、清晰性、完整性進行類的封裝。

內聚性就是類應該描述一個單一的實體。例如,學生姓名和教師所帶班級不是單一實體的屬性,不能組合在一個類中。

一致性就是類、成員變數、方法名要有意義,並且順序是成員變數、構造方法、普通方法。

封裝性就是類中成員變數是私有屬性,通過getter/setter訪問。

清晰性是指類的結構應該是易於解釋和理解的。

完整性是需要充分考慮多種不同用戶設計,應該能通過屬性和方法提供多種方案以適應用戶不同需求。例如,字元串中有很多方法,同時這些方法可以組合完成各種任務。

關於Python的基礎問題可以看下這個網頁的視頻教程,網頁鏈接,希望我的回答能幫到你。

⑺ 我現在想把自己寫的python模塊源代碼封裝成dll,然後在別的python腳本里調用,可以嗎

可以的,只要把python模塊轉換成dll模塊,利用Python自帶的ctypes模塊載入調用就行。

ctypes 是Python的外部函數庫。它提供了與 C語言兼容的數據類型,並允許調用 DLL 或共享庫中的函數。可使用該模塊以純 Python 形式對這些庫進行封裝。

ctypes導出了cdll對象,在 Windows 系統中還導出了windll和oledll對象用於載入動態鏈接庫。通過操作這些對象的屬性,你可以載入外部的動態鏈接庫。cdll載入按標準的cdecl調用協議導出的函數,而windll導入的庫按stdcall調用協議調用其中的函數。

(7)python介面封裝擴展閱讀:

載入調用DLL的相關方法:

1、載入DLL

載入的時候要根據你將要調用的函數是符合什麼調用約定的。

stdcall調用約定:兩種載入方式

Objdll = ctypes.windll.LoadLibrary("dllpath")

Objdll = ctypes.WinDLL("dllpath")

cdecl調用約定:也有兩種載入方式

Objdll = ctypes.cdll.LoadLibrary("dllpath")

Objdll = ctypes.CDLL("dllpath")

其實windll和cdll分別是WinDLL類和CDll類的對象。

2、調用dll中的方法

載入dll的時候會返回一個DLL對象(假設名字叫Objdll),利用該對象就可以調用dll中的方法。 e.g.如果dll中有個方法名字叫Add(注意如果經過stdcall聲明的方法,如果不是用def文件聲明的導出函數或者extern 「C」 聲明的話,編譯器會對函數名進行修改,這個要注意。)

調用:nRet = Objdll.Add(12, 15) 即完成一次調用。

⑻ python3 什麼是 數據封裝

封裝介面主要講靜態介面(無參數傳入)、動態介面(有參數傳入,不同參數返回的信息不同)。
針對動態介面有三種傳參方式:key_value、json串和拼接方式入參!

⑼ 將下面Python代碼封裝成函數

Python:常用函數封裝:
def is_chinese(uchar):
"""判斷一個unicode是否是漢字"""
if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
return True
else:
return False

def is_number(uchar):
"""判斷一個unicode是否是數字"""
if uchar >= u'\u0030' and uchar<=u'\u0039':
return True
else:
return False

def is_alphabet(uchar):
"""判斷一個unicode是否是英文字母"""
if (uchar >= u'\u0041' and uchar<=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):
return True
else:
return False

def is_other(uchar):
"""判斷是否非漢字,數字和英文字元"""
if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):
return True
else:
return False

def B2Q(uchar):
"""半形轉全形"""
inside_code=ord(uchar)
if inside_code<0x0020 or inside_code>0x7e: #不是半形字元就返回原來的字元
return uchar
if inside_code==0x0020: #除了空格其他的全形半形的公式為:半形=全形-0xfee0
inside_code=0x3000
else:
inside_code+=0xfee0
return unichr(inside_code)

def Q2B(uchar):
"""全形轉半形"""
inside_code=ord(uchar)
if inside_code==0x3000:
inside_code=0x0020
else:
inside_code-=0xfee0
if inside_code<0x0020 or inside_code>0x7e: #轉完之後不是半形字元返回原來的字元
return uchar
return unichr(inside_code)

def stringQ2B(ustring):
"""把字元串全形轉半形"""
return "".join([Q2B(uchar) for uchar in ustring])

def uniform(ustring):
"""格式化字元串,完成全形轉半形,大寫轉小寫的工作"""
return stringQ2B(ustring).lower()

def string2List(ustring):
"""將ustring按照中文,字母,數字分開"""
retList=[]
utmp=[]
for uchar in ustring:
if is_other(uchar):
if len(utmp)==0:
continue
else:
retList.append("".join(utmp))
utmp=[]
else:
utmp.append(uchar)
if len(utmp)!=0:
retList.append("".join(utmp))
return retList

⑽ python 怎麼封裝有枚舉類型的C語言編寫的介面

枚舉就用幾個整數表示就可以了