Tôi bị bối rối. Tôi đang cố gắng tạo một lớp con không quan tâm đến bất kỳ tham số từ khóa nào - chỉ cần chuyển tất cả các tham số đó vào lớp cha và đặt rõ ràng một tham số cần thiết cho hàm tạo. Dưới đây là một phiên bản đơn giản hóa của mã của tôi:Đối số từ khóa không mong muốn khi sử dụng ** kwargs trong hàm tạo
class BaseClass(object):
def __init__(self, required, optional=None):
pass
def SubClass(BaseClass):
def __init__(self, **kwargs):
super(SubClass, self).__init__(None, **kwargs)
a = SubClass(optional='foo') # this throws TypeError!?!??
này không thành công với
[email protected]$ python minimal.py
Traceback (most recent call last):
File "minimal.py", line 9, in <module>
a = SubClass(optional='foo')
TypeError: SubClass() got an unexpected keyword argument 'optional'
Làm thế nào nó có thể phàn nàn về một cuộc tranh cãi từ khóa bất ngờ khi phương pháp này có **kwargs
?
(Python 2.7.3 trên Ubuntu)
uhh đúng. cảm ơn./tôi chạy đi và trốn – Leopd