Python的issubclass注意事項

2021-06-19 15:30:16 字數 1131 閱讀 3223

python的ctypes庫中提供了乙個介面來查詢是不是其個類的子類。

issubclass()

幫助文件如下:

help on built-in function issubclass in module __builtin__:

issubclass(...)

issubclass(c, b) -> bool

return whether class c is a subclass (i.e., a derived class) of class b.

when using a tuple as the second argument issubclass(x, (a, b, ...)),

is a shortcut for issubclass(x, a) or issubclass(x, b) or ... (etc.).

這個文件說得很簡單,就是c是不是b的子類。

實際上是指同乙個模組下的類,而不是不同模組下的類。

例如:資料夾base

__init__.py  base.py

base.py 

class base():

pass

資料夾derived

__int__.py derived.py    base.py

derived.py

from base import *

class derived(base):

pass

如上所示,derived資料夾下有base資料夾,則會出現2個base類,最後import的會當前的base類,而此時 derived中的base類實際上是

derived.base.base,而base下的base類位址是 base.base

繼承的結果也是不一樣的,儘管這兩個base類完全一樣,copy過來的,但它的路徑卻不同

實驗如下:

test.py

from derived.derived import *

issubclass(derived, base)  true   此時成功,因此是同乙個base!

from base.base import *

issubclass(derived, base)  false 此時失敗,base模組位址已變!

python的包 python的包

1.把解決一類問題的模組放在同乙個資料夾裡,這個資料夾就是包 2.通過import或是from.import匯入時必須遵循乙個原則 a 凡是在匯入時帶點的,點的左邊都必須是乙個包,否則非法 b 匯入後,使用時點的左邊可以是包,模組,類,函式 它們都可以用點的方式調節用自己的屬性 c from.imp...

python的語句 Python的語句

python中的兩種語句 1 if條件控制語句 格式 if a int input 請輸入第乙個數 b int input 請輸入第二個數 if a b print a比b小 if else a int input 請輸入第乙個數 b int input 請輸入第二個數 if a b print a...

Python(四)python的注釋

一 python單行注釋符號 python中單行注釋採用 開頭二 批量 多行注釋符號 多行注釋是用三引號 包含的,例如 三 python中文注釋方法 如果檔案裡有非ascii字元,需要在第一行或第二行指定編碼宣告。把chinesetest.py檔案的編碼重新改為ansi,並加上編碼宣告 一定要在第一...