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

Nap Fvn viết 20:57 ngày 30/09/2018

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

htl@PyMI.vn viết 21:10 ngày 30/09/2018

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

stackoverflow.com
MacPython

*args and **kwargs?

python, args, kwargs
asked by MacPython on 08:28AM - 03 Aug 10

Vo Anh Hao viết 21:09 ngày 30/09/2018

Tks may’ bac’

vimanh viết 21:03 ngày 30/09/2018

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

Bài liên quan
0