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 :smiley:

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 :smiley:

*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àm cong(*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à *kwargskeyword 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òn kwargs sẽ là 1 dict chứa các tham số có tên.
Chi tiết:

2 Likes

Tks may’ bac’
:relaxed: :relaxed: :relaxed:

đị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!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?