Python中的Function定義方法第1/2頁

來源:互聯網
上載者:User

下面就先定義一個函數: 複製代碼 代碼如下:def foo():
print('function')
foo()

在上述代碼中,定義了一個名為foo的函數,這個函數沒有參數。最後一行代碼的功能是調用這個函數。這是一個函數的最簡單形式。下面來介紹一下有參數的函數: 複製代碼 代碼如下:def foo():
print('function')
def foo1(a,b):
print(a+b)
foo()
foo1(1,2)

foo1就是一個有參數的函數,使用foo1(1,2)就可以調用這個有參的函數了。

在程式中,有變數存在,就會涉及到變數的範圍的問題。在Python中,變數的範圍分三個等級:global、local和nonlocal。

global:顧名思義,表示全域變數。即這個變數在python中處於最高層次上,也就是這個變數的定義層次最高,而不是在函數或類中。
local:局部變數,被定義在函數之中。
nonlocal:這是一個相對的概念。在python中,函數內部可以嵌套定義內建函式,這樣函數內部的變數相對於函數內部的內嵌函數來講就是nonlocal的。
下面,給出相關的程式來說明,首先看一下全域和局部變數:複製代碼 代碼如下:x = 1
y = 2
def foo(x):
print(x)
print(y)
print('***********')
x = 3
global y
y = 3
print(x)
print(y)
print('***********')
foo(x)
print(x)
print(y)

#************************
#運行結果
1
2
***********
3
3
***********
1
3

在上述程式中,定義了兩個全域變數x和y, 在函數foo內部,也定義了一個局部變數x。根據運行結果可知,在foo內部,變數x是真正的局部變數。因為對其所做的修改並沒有對全域變數x產生影響。另外,如果在foo內部需要使用全域變數,則需要使用global關鍵字。global y的意圖就是聲明變數y為外部聲明過的全域變數y。所以,在foo內部對y進行修改後,在foo外部仍然有影響。因為foo修改的是全域變數。
再來看一下nonlocal: 複製代碼 代碼如下:def out():
z = 3
def inner():
nonlocal z
z = 4
print('inner function and z = {0}'.format(z))
inner()
print('out function and z = {0}'.format(z))
out()
#**********
#運行結果
inner function and z = 4
out function and z = 4

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.