文/山哥
在定義函數(shù)的時(shí)候,如果型參沒有數(shù)據(jù)類型,那將會(huì)帶來什么?經(jīng)驗(yàn)豐富而機(jī)智的你,是不是心中已經(jīng)有一百萬草泥馬踏過?
沒錯(cuò),通常來說,Python定義函數(shù)的時(shí)候,是不帶數(shù)據(jù)類型的。這樣的好處是,自由,方便,縮短寫型參的時(shí)間。。
>> def my_fun(x, y=1):
>> return x + y
>> my_fun(1)
Output: 2
確實(shí),如果你的程序足夠簡短,那么這樣子確實(shí)是快!而且在定義y的時(shí)候,因?yàn)槎x了默認(rèn)值,它的類型已經(jīng)確定為Int。
可是如果你的程序想要寫得長一點(diǎn),尤其是你的參數(shù)希望是一個(gè)類,比如pygraphviz.AGraph這樣的東東的時(shí)候,那么如果在定義型參的時(shí)候沒有定義類型,那IDE就無法給你提供完整的 代碼自動(dòng)完成功能。那寫出來的代碼質(zhì)量就不能保證了。
好了,Blah Blah了那么多,最終只為了帶出幾個(gè)字,真是不好意思!請(qǐng)看用法(其實(shí)是和Kotlin一樣,用冒號(hào)來聲明):
from pygraphviz import AGraph as Graph
def hello(graph: Graph):
graph.add_node("my node")