函式(function)作為程式語言中不可或缺的一部分,但函式作為第一類物件(first-class object)卻是 python 函式的一大特性。
那到底什麼是第一類物件(first-class object)呢?
在 python 中萬物皆為物件,函式也不例外,函式作為物件可以賦值給乙個變數、可以作為元素新增到集合物件中、可作為引數值傳遞給其它函式,還可以當做函式的返回值,這些特性就是第一類物件所特有的。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def foo():
print('from foo')
foo()
print(id(foo))
print(type(foo))
print(foo)
輸出
from foo
4406808360
還可以把該函式賦值給更多的變數,唯一變化的是該函式物件的引用計數不斷地增加,本質上這些變數最終指向的都是同乙個函式物件。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def foo():
print('from foo')
foo()
func=foo #引用,賦值
print(foo)
print(func)
func()
輸出
from foo
from foo
def foo():
print('from foo')
def bar(func):
print(func)
func()
bar(foo)
輸出
from foo
函式接受乙個或多個函式作為輸入或者函式輸出(返回)的值是函式時,我們稱這樣的函式為高階函式
def foo():
print('from foo')
def bar(func):
return func
f=bar(foo)
print(f)
f()
輸出
from foo
容器物件(list、dict、set等)中可以存放任何物件,包括整數、字串,函式也可以作存放到容器物件中
def foo():
print('from foo')
dic=
foo()
print(dic['func'])
dic['func']()
輸出
from foo
from foo
函式巢狀的定義
def f1():
def f2():
print('from f2')
def f3():
print('from f3')
f3()
f2()
f1()
輸出
from f2
from f3
應用
def get(text):
def clean(t): #2
return t[1:]
new_text = clean(text) #1
return len(new_text)
print(get('python'))
輸出 python 1 數字型別相關函式
type 型別物件 cmp 比較兩個物件 str 將數字轉換成為字串 eval 將字串轉化成數字 isinstance 比較兩種type型別 del 刪除乙個物件 數字型別表示加法,字串型別表示合併 數字型別表示乘法,字串型別表示重複 int 轉換為整型 float 轉換為浮點型,地板除1 2 0,...
學習Python的日子 Python(1)
第一天學習,沒有學太多的編碼語言,就簡單學習了一些格式 python 安裝軟體 sudo apt get install 軟體名 ftp 安裝ftp 登入 ftp ip 注意 mac ubuntu ftp 192.168.28.46 exit bye 互動式 python3 python print...
Python1 輸入與輸出
輸出一段指定資訊 root peter python python 2.7 5 default,nov 6 2016,00 28 07 gcc 4.8 520150623 red hat 4.8 5 11 on linux2 or license for more information.a inp...