2011-06-22 22 views
17

Có quy ước đặt tên trăn cho đối số từ khóa không?Quy ước Python ** kwargs so với ** kwds so với ** kw là gì?

+1

Thông thường ** kwargs, đôi khi ** kw. Tôi chưa bao giờ thấy ** kwds –

+4

@gnibbler đây là ví dụ mà Guido sử dụng ** kwds http://code.google.com/p/appengine-ndb-experiment/source/browse/ndb/model.py –

+1

cũng ngay bây giờ Tôi đã nhìn thấy nó. Tôi vẫn nghĩ đó là điều độc đáo nhất trong số 3, nhưng bạn biết đấy, có một số mã Python mà tôi chưa từng thấy :) –

Trả lời

12

Không, nhưng thông thường nó được đặt tên là **kwargs, nhưng bạn có thể đặt tên cho bất kỳ thứ gì bạn muốn. Chỉ có điều là nó nên đến cuối cùng sau bất kỳ vị trí args và đặt tên args.

7

Quy ước là **kwargs, như đã thấy trong tài liệu và PEP.

+1

Có ngoại lệ, ví dụ: https://www.python.org/dev/peps/pep-0484 sử dụng' ** kwds' thay vì '** kwargs'. – kadee

+0

Có nhiều ngoại lệ hơn: https://docs.python.org/3.6/library/multiprocessing.html – prokher

6

Điều quan trọng là tính nhất quán. Trong mã cá nhân của bạn và trong dự án mà bạn đang làm việc. Nếu tôi đọc mã của bạn và thấy bạn đang sử dụng **kwarguments trong tất cả các chức năng, tôi có thể hiệu chỉnh bản thân để đọc nó. Nếu bạn sử dụng **k ở một nơi và **kargs ở một nơi khác, đó là một câu chuyện khác.

Đối với các quy ước trong mã Python nói chung, trải nghiệm của tôi giống như của Senthil - **kwargs.

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