python函式引數與類引數
阿新 • • 發佈:2021-11-21
python關於函式的一些應用
前言
鑑於python3與python2有些不同,看到某些程式碼時可能會感到疑惑,就稍微記錄一下。
一.不限制個數的函式引數
1.*args
以此為引數,會被python直譯器預設為元組引數,將輸入的若干個引數組織成元組型別。
def test_args(*args):#元組型別,tuple引數(*args)
print(args)
print(type(args))
sum = 0
for i in args:
sum+=i
return sum
test_args(1,2,3)
(1, 2, 3)
<class 'tuple'>
6
2.**kwargs
以此為引數會被解釋為字典引數,自動將其中輸入的若干個"key = value"引數組織成字典的形式:
#字典型別,dict引數(**kwargs)
def PrintDict(**kwargs):
print(kwargs)
print(type(kwargs))
for key, value in kwargs.items():#items()用於字典
print(f'{key}:{value}')
PrintDict(a=1, b=2, c=3, d=4)
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
<class 'dict'>
a:1
b:2
c:3
d:4
二.關於類繼承的引數
1.class後的括號
class T1:
def __init__(self):
print("T1")
class T2():
def __init__(self):
print("T2")
T1(),T2()
上述兩種類的意義相同,都能成功建立一個簡單的類
T1
T2
(<main.T1 at 0x7fb201ad64f0>, <main.T2 at 0x7fb201ad6910>)
當然如果需要使用繼承,則必須使用括號
2.super函式的引數
使用super函式進行初始化時有兩種初始化方法
super().__init__()
super(inheritName, self).__init__()
其中inheritName是使用此類的名字:
class A(Base):
def __init__(self):
super(A, self).__init__()
#等價於super().__init__()
石中之火,即使無可燃燒之物,也要盡力發亮