2012-07-06 30 views
15

Một đơn * không có số nhận dạng có nghĩa là gì trong các đối số hàm Python? Dưới đây là một ví dụ phù hợp với Python3.2:Một đơn * không có số nhận dạng có nghĩa là gì trong các hàm Python3?

class Shape: 
    def __init__(self, *, shapename, **kwds): 
     self.shapename = shapename 
     super().__init__(**kwds) 

Đối với tôi, ngôi sao sau tự là lạ.

tôi đã tìm thấy nó ở đây (từ hàng 46): http://code.activestate.com/recipes/577720-how-to-use-super-effectively/

+1

Điểm bổ sung cho người chỉ vào PEP;) (tôi nhớ đọc một đoạn PEP mô tả điều này, nhưng tôi không thể nhớ nơi, hoặc nó là gì, **/tôi quay lại google **) – KurzedMetal

Trả lời

13

Các đơn độc * chỉ ra rằng tất cả các đối số sau đây là từ khóa chỉ đối số, có nghĩa là, họ chỉ có thể được cung cấp sử dụng tên của họ, không phải là vị trí tranh luận.

Xem PEP 3102 để biết thêm chi tiết.

+1

Nói cách khác: 'shapename' phải được thêm một cách rõ ràng khi tạo một đối tượng' Shape' mới, như 'Shape (shapename = 'Circle')' – KurzedMetal

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