方法的建立python
咱們建立方法能夠用到def關鍵字,好比函數
def run(): spa
print('跑步')
對象
run() #在方法裏面能夠進行咱們想要的操做,而後咱們須要調用run()才能實現這些操做內存
方法調用參數容器
咱們先定義一個變量a=1,好比咱們要在方法內對這個值進行改變變量
#!/bin/sh/python
方法
a = 1
return
def run(a): #a爲形參
參數
# global a
a += 1
print(a) # 2
run(a) # 把變量a做爲實參傳入,至關於把1傳進去
print(a) # 1
打印結果爲2和1,爲何咱們的a值最終沒有進行改變?在python中函數(方法)也是一個對象,當咱們建立run函數時,會在內存中從新開闢出一個空間來存儲這個函數對象,並指向函數名變量,調用函數時找到函數對象並開闢出新的空間執行內部的代碼,並把參數的值也傳進去了,咱們不能把兩個a當成同一個變量。咱們能夠這麼考慮,就是至關於有一個容器裏面定義了一個變量a,當新建run函數時,在這個容器裏面會在建立一個容器,容器裏有個變量a,可是他沒有值,咱們把外層容器的值賦值給力內層a,那麼兩個變量就毫無關係。那麼咱們要怎麼經過函數實現改變外部a的改變?有兩個操做第一種就是使用global關鍵字標註a,或者是用return關鍵字返回值給外部變量a
a = 1
def run(a):
a += 1
return a
a = run(a)
print(a) # 2