可使用內建函式callable判斷某個物件是否可呼叫
>>> import math
>>> x = 1
>>> y = math.sqrt
>>> callable(x)
false
>>> callable(y)
true
用def定義函式
def hello(name):
return 'hello, ' + name + '!'
>>> print(hello('world'))
hello, world!
>>> print(hello('gumby'))
hello, gumby!
放在函式開頭的字串稱為文件字串(docstring) ,將作為函式的一部分儲存起來
def square(x):
'calculates the square of the number x.'
return x * x
>>> square.__doc__
'calculates the square of the number x.'
可用內建函式help獲取有關函式的資訊,其中包含函式的文件字串
>>> help(square)
help on function square in module __main__:
square(x)
calculates the square of the number x.
有些函式什麼都不返回, 什麼都不返回的函式不包含return語句,或者包含return語句,但沒
有在return後面指定值。
def test():
print('this is printed')
return
print('this is not')
>>> x = test()
this is printed
這裡的return類似迴圈的break,只是跳出的是函式
>>> x
>>>
>>> print(x)
none
所有的函式都返回值。如果你沒有告訴它們該返回什麼,將返回none。
關鍵字引數:有時候,引數的排列順序可能難以記住,尤其是引數很多時。為了簡化呼叫工作,可指定參
數的名稱
def hello_1(greeting, name):
print('{}, {}!'.format(greeting, name))
>>> hello_1(greeting='hello', name='world')
hello, world!
>>> hello_1(name='world', greeting='hello')
hello, world!
關鍵字引數可以指定預設值
def hello_3(greeting='hello', name='world'):
print('{}, {}!'.format(greeting, name))
>>> hello_3()
hello, world!
>>> hello_3('greetings')
greetings, world!
>>> hello_3('greetings', 'universe')
greetings, universe!
下邊的函式要求必須指定姓名,而問候語和標點是可選的
def hello_4(name, greeting='hello', punctuation='!'):
print('{}, {}{}'.format(greeting, name, punctuation))
>>> hello_4('mars')
hello, mars!
>>> hello_4('mars', 'howdy')
howdy, mars!
>>> hello_4('mars', 'howdy', '...')
howdy, mars...
>>> hello_4('mars', punctuation='.')
hello, mars.
>>> hello_4('mars', greeting='top of the morning to ya')
top of the morning to ya, mars!
>>> hello_4()
traceback (most recent call last):
file "", line 1, in
typeerror: hello_4() missing 1 required positional argument: 'name'
如果給引數name也指定了預設值,最後乙個呼叫就不會引發異常。
python關鍵字和非關鍵字引數(可變長引數)
可變長引數存在的意義是 每次呼叫乙個函式處理不同量的引數輸入。即,引數在呼叫之前輸入的引數數量是未知的,或者多次呼叫該函式,每次的引數輸入的量是不一致的 可變長引數分為非關鍵字和關鍵字型別,分別對應元組和字典,如下定義乙個類,功能是列印出輸入的函式 class test def keyword se...
抽象類及final關鍵字。
一 抽象類 1.用abstract關鍵字來修飾乙個類時,這個類叫做抽象類 用abstract來修飾乙個方法時,該方法叫做抽象方法。2.含有抽象方法的類必須被宣告為抽象類,抽象類必須被繼承,抽象方法必須被重寫。3.抽象類不能被例項化。簡單說就是不能被new出來 4.抽象方法只需宣告,而不需要被實現。二...
java 抽象 abstract關鍵字
abstract用來修飾類或者是成員方法,用來表示抽象的意思。1,abstract修飾類,會使這個類成為乙個抽象類,這個類將不能生成物件例項,但可以做為物件變數宣告的型別,也就是編譯時型別,抽象類就像當於一類的半成品,需要子類繼承並覆蓋其中的抽象方法。2,abstract修飾方法,會使這個方法變成抽...