2011-12-27 55 views
8
def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'): 
    print "-- This parrot wouldn’t", action 
    print "if you put", voltage, "volts through it." 
    print "-- Lovely plumage, the", type 
    print "-- It’s", state, "!" 

Tôi bắt đầu học python. Tôi có thể gọi chức năng này bằng cách sử dụng con vẹt (5, 'chết') và con vẹt (điện áp = 5). Nhưng tại sao tôi không thể gọi với cùng chức năng với con vẹt (điện áp = 5, 'chết')?Thông số chức năng - Python

Trả lời

13

Bạn không thể sử dụng đối số không phải từ khóa ('arg_value') sau đối số từ khóa (arg_name='arg_value'). Điều này là do cách Python được thiết kế.

Xem ở đây: http://docs.python.org/tutorial/controlflow.html#keyword-arguments

Vì vậy, bạn phải nhập tất cả các đối số sau một từ khóa luận như từ khóa luận ...

# instead of parrot(voltage=5, 'dead'): 
parrot(voltage=5, state='dead') 

# or: 
parrot(5, state='dead') 

# or: 
parrot(5, 'dead') 
+2

vẹt (5, state = 'chết') cũng sẽ là hợp lệ –

+0

@NathanW Yup, đã thêm vào mã ví dụ của tôi ngay bây giờ. – poplitea

Các vấn đề liên quan