知識小匯

伊念發表於2019-04-01
返回多個列表用元組接收
class p(object):
    def __init__(self):
        (self.x,self.y)=self.xdxx()
        print(self.x)

    def xdxx(self):
        a=[1,4,5,8,5]
        b=[4,5,8,9,9]
        return a,b

t=p()

複製程式碼
子類無法直接呼叫父類私有方法

形參之四大引數型別

def getInfo(name, age):  # 按照位置傳遞引數
    print(name, age)
getInfo(age=18, name='name')
getInfo(name=18,age='name')
複製程式碼

輸出:

name 18

18 name

預設引數

def mypow(x, y=2): 	#設定	第二個引數y的預設值為2
    """			#函式中輸入''' ''',會自動彈出
    求x的y次方
    :param x:
    :param y:
    :return:
    """
    print(x ** y)
    mypow(4)  # 在沒有設定y值時,預設y=2
    mypow(4, 3)  # 設定了y值的時候,就執行x**y,這裡就是4**3,而不是4**2
複製程式碼

輸出:

16

64

可變引數

def mySum(*args):	
    """
    *args:是一個可變引數,可以傳遞任意引數型別[ ],{ },( )
    args:是元組資料型別。函式在呼叫的時候內部自動組裝成一個元組類
    """
    sum = 0
    for item in args:
        sum += item
    print(sum)
mySum(1,2,3,4,5,6,7,8)
#輸出: 36
複製程式碼

變換引數型別:

nums = [1,2,3,4,5,6]		#list
nums1 = (2,5,6,7,9,10) 		#tuple
nums2 ={1,2,3,4,5,6,7,8}	#set
mySum(*nums2)			#*解包,把list,set,tuple的元素變成可變引數傳進去
mySum(*nums1)
mySum(*nums)
#輸出:363921
複製程式碼
score = (12, 23, 56, 78, 90)
minscore, *middlescore, maxscore = score
print(*middlescore)	#一個*為解包
print(middlescore)
#輸出:23 56 78 [23, 56, 78]
複製程式碼

關鍵字引數 -1#**kwargs 接收字典

def getStuInfo(name,age,**kwargs):
    print(name,age)
    print(kwargs)
#kwargs接收的時字典
getStuInfo('westos',11,hobbies=['code','running'],gender='female')
'''輸出:
westos 11
{'hobbies': ['code', 'running'], 'gender': 'female'}'''
複製程式碼

對字典進行解包.一個星號:獲取key

d = dict(a=1,b=2)
print(*d)	
#輸出:a b
複製程式碼
def getStuInfo(name,age,**kwargs):
    print(name,age)
    print(kwargs)
    
d = dict(a=1,b=2)
getStuInfo('westos',11,**d)		#兩個星號,**d解包把字典傳入
'''輸出:
westos 11
{'a': 1, 'b': 2}'''
複製程式碼