斤斤計較之Python 類

2021-09-26 06:14:29 字數 1548 閱讀 7647

def scope_test():

def do_local():

spam = "local spam"

def do_nonlocal():

nonlocal spam

spam = "nonlocal spam"

def do_global():

global spam

spam = "global spam"

spam = "test spam"

do_local()

print("after local assignment:", spam):

do_nonlocal()

print("after nonlocal assignment:", spam):

do_global()

print("after global assignment:", spam):

scope_test()

print("in global scope:", spam)

函式輸出為:

after local assignment: test spam

after nonlocal assignment: nonlocal spam

after global assignment: nonlocal spam

in global scope: global spam

也就是說,函式所處的位置的變數名相同的情況下,並且有多個作用域變數,總是優先使用作用域最小的變數。

class myclass:

def __init__(self):

self.data =

def print_name(self):

print("hello, my name is harry")

. ..

#通常宣告為def定義的函式,類裡面的引數函式等都可以通過類名進行點號引用

x = myclass() # 類的例項化 ,例項化第一步進入類會執行__init__函式,通常預設的類引數都在此處定義

#按照上面的定義,僅僅定義了self.data,我們可以使用x.data引用資料。也可以使用x.name = a,例項後定義新的變數,這是合法的

#同樣通過x.print_name() 可以呼叫定義的方法

#注意類中定義的方法的第乙個引數,約定俗成的使用self,當然你也可以使用其他任何合法的變數名,但是非常不建議這麼做。

class derivedclassname(myclass,myclass1, myclass2):	..

.

#這樣我們就定義了乙個繼承的類,類derivedclassname,繼承了類myclass

#基本原理是:如果在類中找不到請求呼叫的屬性,就搜尋基類。如果基類是由別的類派生而來,這個規則會遞迴的下去。

#python是支援多繼承的,所以使用如上的方法進行繼承就是多繼承的方式。

isinstance(obj, int) # 檢查類的例項型別

issubclass() # 檢查類的繼承關係

斤斤計較之Python 模組

def print name name print hello name,my lord.我們定義了乙個簡單的模組,使用import harry即可呼叫,也可以使用from harry import print name harry.print name harry 輸出 hello harry.m...

斤斤計較之Python 元組 集合

定義乙個元組 harry 1,2,3 或者harry 1,2,3 以逗號隔開 注意賦值時可以是 a,b,c harry 與列表相同的索引,harry 0 1。但是請注意,元組的值是不支援索引修改的 harry 0 1會返回錯誤提示 元組也可以像列表一樣進行巢狀,當然巢狀的方式是以小括號為分界的。列表...

斤斤計較之Python 運算子

符號含義 使用方法 注意事項 特殊用法 加法運算子 a b 整型 浮點型 字串 列表均可使用 a b ab 減法運算子 a b無無 乘法運算子 a b 整形 浮點型 字串可使用 a 4 aaaa 除法運算子 a b b 0,返回值為浮點型。3 2 1.5 取整除法運算子 a b 返回值為除法的取整 ...