天天看點

python3關鍵字

del:解除對變量的引用

a = 0
b = a 
del(a)
print(a)->'a' is not defined
print(b)->0
           

global:在本地作用域修改全局變量

python引用變量的順序: 目前作用域局部變量->外層作用域變量->目前子產品中的全局變量->python内置變量 。

a = 0
def func():
    a = 1
    print(a)
func()
print(a)
result: 0 1

a = 0
def func():
    a += 1
    print(a)
func()
print(a)
result: UnboundLocalError: local variable 'a' referenced before assignment

a = 0
def func():
    global a
    print(a)
    a = 1
func()
print(a)
result: 0 1
           

lamda:匿名函數(lambda argument_list: expression)

raise:自行抛出異常 

用法1:執行到raise時,直接抛出異常到except,code2不會被執行
try :
    code1
    raise
    code2
except Exception as e:
    print ("Error!"))
用法2:
try :
    code1
    if(condition)
        raise Exception("Error!")
    code2
except Exception as e:
    print (e)
注意:如果raise的異常不被catch,則該異常會一直向上傳遞,直到被捕獲,否則終止運作
           

yield:生成器

nolocal:在本地作用域中使用外部(非全局)變量。

with...as...:

with所求值的對象必須有一個__enter__(self)方法,一個__exit__(self, type, value, trace)方法。緊跟with後面的語句被求值後,傳回對象的__enter__()方法被調用,這個方法的傳回值将被指派給as後面的變量。當with後面的代碼塊全部被執行完之後,将調用前面傳回對象的__exit__()方法。

處理異常:with後面的代碼塊抛出異常時,與之關聯的type,value和stack trace傳給__exit__()方法。開發庫時,清理資源,關閉檔案等等操作,都可以放在__exit__方法當中。 是以,Python的with語句是提供一個有效的機制,讓代碼更簡練,同時在異常産生時,清理工作更簡單。