譚子python學習筆記 函式定義及作用域

2021-08-02 07:38:39 字數 2379 閱讀 9510

作用域法則

函式是為了**最大程度的重用和最小化**冗餘而提供的最基本的程式結構

- 最大化的**重用和最小化的**冗餘

- 流程分解

語句例子

備註calls

func(『spam』,』eggs』)

呼叫函式

defdef func(a,b=1,*c)

定義return

return a+b+c[0]

返回值global

def changer():

global x

x = 『new』

全域性變數

yield

def square(x):

for i in range(x): yield i**2

迭代器lambda

func=lambda x:x**2

匿名函式

說明:

-def是可執行**。函式並不存在,直到python執行了def後才存在。既是語句其可以與if判斷語句、while迴圈語句、def語句等巢狀使用。在典型的操作中,def語句在模組檔案中編寫,並自然而然的在模組檔案中第一次匯入的時候生成定義。

-def建立了乙個物件並將其賦值給某個變數名當python執行到def時,它將會生成乙個新的函式物件並將其賦值給這個函式名。

-lambda建立乙個物件但將其作為結果返回

-return將乙個結果物件傳送給呼叫者

-yield向呼叫者發回乙個結果物件,但是記住它離開的地方

-global宣告了乙個模組級的便令並被賦值。變數名往往需要關注它的作用域(也就是說變數儲存的地方)

-函式是通過賦值(物件引用傳遞的)

-引數、返回值 變數並不是宣告

def

(arg1,arg2,... argn):

[return

] [yield

]

def

my_func

(s,flag=1):

print flag

if flag == 1:

deffunc

(s):

return s + ' world!'

elif flag == 2:

deffunc

(s):

return s%10

else:

return -1

return func(s)

print my_func('hello')

example:

x = 99

deffunc

(y):

z = x + y

return z

func(1)

說明:

全域性變數名:x,func

本地變數名:y,z

y和z都是本地變數,因為他們都是在函式定義內部進行賦值的,變數的賦值將改變函式的作用域

>>> 

import __builtin__

>>> dir(__builtin__)

盡量少使用全域性變數

x = 99

deffunc

(z,y):

global x

x = x + y

return x

func(1,2)

模組:test.py

x = 99

deffunc

(z,y):

global x

x = x + y

return x

載入模組,訪問變數

import test

print test.x

print test.func(1,2)

x = 99

y = 80

deff1

(): x = 88

deff2

():print x

print y

f2()

f1()

def

maker

(n):

defaction

(x):

return x**n

return action

f = maker(2)

f(3)

譚子python學習筆記 字典

操作 解釋備註 d 空字典d 兩專案字典 d 巢狀d dict.fromkeys a b 構造字典,鍵值為列表 a b 中的值 d dict.fromkeys a b print d 結果為d egg d egg ham 以鍵作為索引運算 eggs in d 成員關係,存在測試 d.keys 鍵d....

Python學習筆記 函式

1.基本呼叫 python 中的函式使用關鍵字 def 來建立乙個函式,正如其他語言中的函式一樣,有函式名,引數,以及返回值。函式的引數不用指定型別,return 可以在任何地方出現,表示函式結束,如果沒有返回內容則預設返回值為none。乙個簡單的無引數,無返回值的hello world def h...

python學習筆記 函式

def fun object,param1,param2 none print type object tuple,呼叫時預設的所有實參全部轉化為tuple傳遞給object fun 1,2,3,4,5,6,7,param1 8 指定param1的呼叫實參,param2引數呼叫預設值函式內可訪問全域...