Python知识总结(二)
生活随笔
收集整理的這篇文章主要介紹了
Python知识总结(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、import和reload和__import__
import是一個關鍵字,只引入一次
reload是一個函數,參數為一個字符串,它總是會重新引入
__import__是一個函數,與import關鍵字作用一樣,它的好處就是可以動態引入包。因為import關鍵字后面只能跟確定的包名,而不能跟字符串參數,__import__可以在程序運行時確定引入哪一個包
要使用reload函數,需要引入imp包。在python2中,reload是一個內置函數,在python3中移動到了imp模塊中
from imp import reload
二、doc string
以下代碼意在告知如下知識點:
- __all__跟dir(模塊名)是一對
- 在模塊開頭、類開頭、函數開頭,添加注釋,即可使用help(module),help(className),help(functionName)查看doc string,也可以使用module.__doc__,fun.__doc__查看注釋
三、vars 、locals是內置函數,用于查看當前作用域內包含哪些東西
四、類中定義變量是n+1份
class A:cnt = 0def __init__(self):A.cnt += 1self.cnt = A.cnt a = A() print(a.cnt,A.cnt) #1,2 b = A() print(a.cnt,b.cnt,A.cnt) #1,2,2 a.cnt = 10 print(a.cnt,b.cnt,A.cnt) #10,2,2上例中,類A、對象a、對象b中各維持一份cnt
五、staticmethod和classmethod
python中類有三種方法:實例方法、staticmethod、classmethod
實例方法第一個參數必須是self參數,classmethod第一個參數必須是cls參數,staticmethod就跟普通的類外面的函數沒啥區別
三種函數有兩個調用主體:類和對象
類和對象都可以隨便調用這三種方法。
六、異常
try:pass except ZeroDivisionError: # 捕捉一個錯誤pass except (ArithmeticError, FloatingPointError) as e: # 捕捉多個錯誤,as e有沒有都可以pass except: # 捕捉全部異常,也可以寫成except Exception as e以獲取參數pass else: # 如果沒有異常拋出pass finally: # 不管有沒有異常pass七、動態函數參數
Python庫中常見的一種結構是def f(*args, **kargs),運行一個小例子立馬就明白了
""" 用*args,**kargs可以代表一切參數 """def f(*args, **kargs):print(args, kargs)f("one", 1, 2, 3, one=1, two=2)- *args表示全部的不知名字的參數,**kargs表示全部的知道名字的參數。
- 有名字的參數后面不能出現沒名字的參數
- *args會吃掉全部的沒名字的參數
- def f(usr,*args,**kargs)這種定義是合法的,usr只會吃掉第一個形參,args會吃掉它遇見的一切沒名字的形參。
總結
以上是生活随笔為你收集整理的Python知识总结(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ★36句经典英文格言
- 下一篇: 在 C# 中,(int) ,Int32.