1. 程式人生 > >Python 小結

Python 小結

1.Python指令碼執行出現語法錯誤:IndentationError: unindent does not match any outer indentation level 
這個是程式碼沒有對齊產生的錯誤


2.class:
(1)注意到__init__方法的第一個引數永遠是self,表示建立的例項本身,因此,在__init__方法內部,就可以把各種屬性繫結到self,因為self就指向建立的例項本身。
    有了__init__方法,在建立例項的時候,就不能傳入空的引數了,必須傳入與__init__方法匹配的引數,但self不需要傳,Python直譯器自己會把例項變數傳進去


(2)如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線__,在Python中,例項的變數名如果以__開頭,就變成了一個私有變數(private),只有內部可以訪問,外部不能訪問


(3)需要注意的是,在Python中,變數名類似__xxx__的,也就是以雙下劃線開頭,並且以雙下劃線結尾的,是特殊變數,特殊變數是可以直接訪問的,不是private變數,所以,不能用__name__、__score__這樣的變數名。


(4)內部類:
     object_name = outclass_name.innerclass_name()

     object_name.method()

3.python 內部沒有普通型別,任何型別都是物件

4.'''是python 中的特別語法,三引號中可以加入單引號、雙引號或者換行等字元


5.tuple =("apple")
print(tuple[0])
print(type(tuple))
print(type(tuple[0]))
print("----------------------")
tuple =("apple",)
print(tuple[0])
print(type(tuple))
print(type(tuple[0]))

結果:
a
<class 'str'>
<class 'str'>
----------------------
apple
<class 'tuple'>
<class 'str'>
6.在python中可以使用copy模組來實現物件的深拷貝和淺拷貝,deepcopy()用於深拷貝操作,copy()用於淺拷貝操作

7.用keyword模組檢測True 和False 是否為關鍵字。
>>> import keyword
>>> keyword.iskeyword('True')
False

8.在Python中,空字串為假,非空字串為真。非零的數為真。
數字和字串之間、字串之間的邏輯操作規律是:
對於and操作符:
只要左邊的表示式為真,整個表示式返回的值是右邊表示式的值,否則,返回左邊表示式的值
對於or操作符:
只要兩邊的表示式為真,整個表示式的結果是左邊表示式的值。
如果是一真一假,返回真值表達式的值
如果兩個都是假,比如空值和0,返回的是右邊的值。(空值或0)

9.python return
return可以返回多個值,以逗號分隔。相當於返回一個tuple(定值表)。
return a,b,c # 相當於 return (a,b,c)

10.引數組合
在Python中定義函式,可以用必選引數、預設引數、可變引數、關鍵字引數和命名關鍵字引數,這5種引數都可以組合使用。但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。
比如定義一個函式,包含上述若干種引數:
def f1(a, b, c=0, *args, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)


def f2(a, b, c=0, *, d, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)