30/09/2018, 18:55
Cần hỏi về hàm!
def print_two(*args):
arg1, arg2 = args
print "arg1: %r, arg2: %r" % (arg1, arg2)
# ok, that *args is actually pointless, we can just do this
def print_two_again(arg1, arg2):
print "arg1: %r, arg2: %r" % (arg1, arg2)
Với 2 hàm trên thì kết quả in ra hoàn toàn giống nhau
nhung e không hiểu tham số (*args) là gì
Mong m.n thông não
Bài liên quan
Taoco = [1,2,3,4,5,6,7,8,9,0,]
mayco, *nhieuthangco = Taoco
Result:
mayco = 1
nhieuthangco = [2,3,4,5,6,7,8,9,0]
Nhu vay do ban
*args
là từ khóa đặc biệt cho hàm, để nhận tất cả tham số truyền vào hàm mà ko cần định nghĩa trước số lượng tham số.Vd bình thường bạn có hàm
cong(a, b)
thì hàm này chỉ nhận 2 (ko hơn ko kém) tham số. Còn khi bạn định nghĩa hàmcong(*args)
thì hàm này nhận bao nhiêu tham số cũng được.Còn 1 từ khóa đặc biệt cho hàm nữa là
*kwargs
làkeyword arguments
tức là tham số có tên.VD: khi bạn có hàm
cong(*args, *kwargs)
thìcong(1, 2, 3, a=5, b=10,c=9)
thìargs
sẽ là[1, 2, 3]
cònkwargs
sẽ là 1 dict chứa các tham số có tên.Chi tiết:
*args and **kwargs?
Tks may’ bac’
định vào giải thích nhưng hai bác nói chuẩn quá nên thôi.
chúc bạn code tốt vậy!