Python 上的函式函數傳遞


今天是第二天在玩 Google Apps Engine (GAE)..不知不覺間因為想要封裝一下 mako template 的用法..所以就開始寫 Class 來處理,方便自己之餘也可給以後一個方便,至少對於以後來說,我想我會用得上吧,目前來說 mako template 比較配合我的習慣就是,在現在的時間來說,我沒能力在 Python 領或中開發出自己的模版系統,便就使用現存的來學習一下(該是使用吧 = =!)

不過以認真地寫 Python 來計算,其實說不上一星期,不過感覺真的 Python 有很多可取之處,至少對於以 PHP 為主編程的自己來說,我開始愛上 Python,雖然有時真的被搞得頭大,可是卻很多時候得到很多有處的玩意,至少至少在這一篇的標題中,我便是這才發覺 Python 的方便,雖然 PHP 也有類似的東西,可是卻沒有那麼的簡單易用,必須調用函數來實現,而且還不是完全 100% ?(如有筆誤請指教,畢竟我是新手 a_a!)

好吧..回到正題了..Python 的函式函數有四種的表示方法?(依網上的資料)

  1. FUNCTION(arg1, arg2 … etc)

– 這是最常目的方式就是直接傳入值

1
2
def test(x, y):
print x , y
  1. FUNCTION(arg1, arg2 = value2)

– 這也是常目的方式,第一個必須傳入值,第二個就可有可無,如果不傳入就會用 1234,否則就用傳入值

1
2
def test(x, y='1234'):
print x, y
  1. FUNCTION(*arg1)

– 這方式比較少用,在 Web 的程式上?其實在 PHP 之上也少看見,他可以一次傳入多個值如
– test(1) : (1,)
– test(1, 2) : (1, 2)

1
2
def test(*arg1):
print arg1
  1. FUNCTION(**arg1)

– 至於這一種,也是不太常用,印象中在 PHP 中還沒看見過,他可以在函式外直接傳入變數使用,很方便
– 在 Python 的模版上,看得最多的就是這種指定方法..
– test(user=’test’, password=’1234’) : {‘user’ : ‘test’, ‘password’ : ‘1234’}

1
def test(**arg1):

參考 : http://www.x5dj.com/Blog/00199734/00284166.shtml