Python 14 抽象及關鍵字引數

2022-08-30 12:18:08 字數 2374 閱讀 7213

可使用內建函式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修飾方法,會使這個方法變成抽...