搜尋
首頁後端開發Python教學Python快速教學(補充篇02):Python小技巧

import模組

在Python經常使用import聲明,以使用其他模組(也就是其它.py檔)中定義的物件。

1) 使用__name__

當我們寫Python庫模組的時候,我們往往運行一些測試語句。當這個程式當作庫被import的時候,我們並不需要執行這些測試語句。一種解決方法是在import之前,將模組中的測試語句註解掉。 Python有更優美的解決方法,就是使用__name__。

下面是一個簡單的函式庫程式TestLib.py。當直接執行TestLib.py時,__name__為”__main__」。如果被import的話,__name__為」TestLib」。

 

 

 

 

 

Python

 

5

6

7

8

9

   

def lib_func (a):

    return a + 10

 

def lib_func_another(b):

  __main__':

    test = 101

    PRint(lib_func(test ))

   

 

我們在user.py中import上面的TestLib。

 

 

 

 

 

Python

 TestLib

print(TestLib.lib_func(120))

   

你可以嘗試不在TestLib.py中使用if __name__=='__main__', 並比較執行結果。

 

2) 更多import使用方式

import TestLib as test         # 引用TestLib模組,並將它改名為t

 

 

 

Python

 

1

2

   

import TestLib as t

( ib import lib_func   # 只引用TestLib中的lib_func對象,並跳過TestLib引用欄位

這樣的好處是減少所引用模組的記憶體佔用。

例如:

 

 

 

 

 

Pyt 

from TestLib import lib_func

print(lib_func(120))

   

from TestLib import *          # 引用所有TestLib中的對象,並跳過TestLib引用欄位

例如:

 

 

1

2

   

from TestLib import *

print(lib_func(120))

   

 

查詢

1)

 

查詢

1)

 

查詢

1) 我可以查詢函數的參數查詢。

 

 

 

 

 

Python

 inspect

print(inspect.getargspec(func))

   

 

2)查詢物件的屬性

除了使用dir()來查詢物件的屬性之外,我們可以使用下方內建(built-in)函數來確認一個物件是否具有某個屬性:

hasattr(obj, attr_name)   # attr_name是字串

例如:

 

 

 

 

 

Python

a = [1,2,3]

print(hasattr( a,'append'))

   

 

2) 查詢對象所屬的類別和類別名稱

 

 

 

1

2

3

   

a = [1, 2, 3]

print a.__class__

print a.__class__.__name__

.

我們可以用__base__屬性來問某一類的父類:

cls.__base__

例如:

 

 

 

 

   

print(list.__base__)

 

使用中文(以及其它非ASCII編碼)

在Python程式的第一行加入#coding=utf8,例如:

Python

 

1

2

   

#coding=utf8

print("你好嗎?")

   

 

 

 

Python

 

1

2

*

 

   

 

表示2進制,8進位與16進位數字

在2.6以上版本,以下列方式表示

 

 

 

1

2

3

   

print(0b1110)     # 二進位,0b開頭

print(0o10)       

print(0o10)     進制,以0x開頭

   

如果是更早版本,可用以下方式:

 

 

 

 

 

Python

   

print(int("1110", 2))

print(int("10", 8))

print(int("2A", 16))

   

 

註解可以以」'開始,以」'結束,例如

 

 

 

 

 

Python

 

Python

4

5

6

7

8

9

10

   

'''

This is demo

something

    print("Hello world!" )  # use print() function

 

# main

func()

   

註記應該和所在的程式區塊所對齊。

 

搜尋路徑

當我們import的時候,Python會在搜尋路徑中尋找模組(module)。例如上面import TestLib,就要求TestLib.py在搜尋路徑中。

我們可以透過下面方法來查看搜尋路徑:

 

 

 

 

 

Python

 

 

Python

 

 

Python

 

 

Python

 

 

Python

 

 

   

import sys

print(sys.path)

   

我們可以在Python運作的時候增加或刪除sys.path中的元素。另一方面,我們可以透過在shell中增加PYTHONPATH環境變量,來為Python增加搜尋路徑。

下面我們增加/home/vamei/mylib到搜尋路徑中:

$export PYTHONPATH=$PYTHONPATH:/home/vamei/mylib

你可以將正面的這一行指令加入到~/.bashrc中。這樣,我們就長期的改變了搜尋路徑。

 

腳本與命令列結合

可以使用下面方法執行一個Python腳本,在腳本運行結束後,直接進入Python命令列。這樣做的好處是腳本的物件不會被清空,可以透過命令列直接呼叫。

$python -i script.py

 

安裝非標準套件

Python的標準庫隨著Python一起安裝。當我們需要非標準套件時,就要先安裝。

1) 使用linux repository (Linux環境)

這是安裝Python附加套件的一個不錯的起點。你可以在Linux repository中尋找可能存在的Python套件 (例如在Ubuntu Software Center中搜尋matplot)。

2) 使用pip。 pip是Python自帶的套件管理程序,它連接Python repository,並尋找其中可能存在的套件。

例如使用以下方法來安裝、卸載或升級web.py:

$pip install web.py

$pip uninstall web.py

$pip install –upgrade web.pypy在一個非標準的路徑(使用$which python來確認python可執行檔的路徑)中,例如/home/vamei/util/python/bin中,你可以使用下面方法設定pip的安裝包的路徑:

$ pip install –install-option=”–prefix=/home/vamei/util/” web.py

3) 從源碼編譯

如果上面方法都沒法找到你想要的庫,你可能需要從源碼開始編譯。 Google往往是最好的起點。

 以上就是Python快速教學(補充篇02):Python小技巧的內容,更多相關內容請關注PHP中文網(www.php.cn)! 

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Numpy數組與使用數組模塊創建的數組有何不同?Numpy數組與使用數組模塊創建的數組有何不同?Apr 24, 2025 pm 03:53 PM

numpyArraysareAreBetterFornumericalialoperations andmulti-demensionaldata,而learthearrayModuleSutableforbasic,內存效率段

Numpy數組的使用與使用Python中的數組模塊陣列相比如何?Numpy數組的使用與使用Python中的數組模塊陣列相比如何?Apr 24, 2025 pm 03:49 PM

numpyArraySareAreBetterForHeAvyNumericalComputing,而lelethearRayModulesiutable-usemoblemory-connerage-inderabledsswithSimpleDatateTypes.1)NumpyArsofferVerverVerverVerverVersAtility andPerformanceForlargedForlargedAtatasetSetsAtsAndAtasEndCompleXoper.2)

CTYPES模塊與Python中的數組有何關係?CTYPES模塊與Python中的數組有何關係?Apr 24, 2025 pm 03:45 PM

ctypesallowscreatingingangandmanipulatingc-stylarraysinpython.1)usectypestoInterfacewithClibrariesForperfermance.2)createc-stylec-stylec-stylarraysfornumericalcomputations.3)passarraystocfunctions foreforfunctionsforeffortions.however.however,However,HoweverofiousofmemoryManageManiverage,Pressiveo,Pressivero

在Python的上下文中定義'數組”和'列表”。在Python的上下文中定義'數組”和'列表”。Apr 24, 2025 pm 03:41 PM

Inpython,一個“列表” isaversatile,mutableSequencethatCanholdMixedDatateTypes,而“陣列” isamorememory-sepersequeSequeSequeSequeSequeRingequiringElements.1)列表

Python列表是可變還是不變的?那Python陣列呢?Python列表是可變還是不變的?那Python陣列呢?Apr 24, 2025 pm 03:37 PM

pythonlistsandArraysareBothable.1)列表Sareflexibleandsupportereceneousdatabutarelessmory-Memory-Empefficity.2)ArraysareMoremoremoremoreMemoremorememorememorememoremorememogeneSdatabutlesserversEversementime,defteringcorcttypecrecttypececeDepeceDyusagetoagetoavoavoiDerrors。

Python vs. C:了解關鍵差異Python vs. C:了解關鍵差異Apr 21, 2025 am 12:18 AM

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

Python vs.C:您的項目選擇哪種語言?Python vs.C:您的項目選擇哪種語言?Apr 21, 2025 am 12:17 AM

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

達到python目標:每天2小時的力量達到python目標:每天2小時的力量Apr 20, 2025 am 12:21 AM

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。