Message289902
The support of **kwargs in Path.__new__ is needed if you want to implement a subclass of Path with __init__ accepting keyword arguments (and since Path constructor takes variable number of positional arguments, new arguments should be keyword-only).
>>> import pathlib
>>> class MyPath(pathlib.PosixPath):
... def __init__(self, *args, spam=False):
... self.spam = spam
...
>>> p = MyPath('/', spam=True)
>>> p
MyPath('/')
>>> p.spam
True
Removing **kwargs from Path.__new__ will break the above example.
>>> MyPath('/', spam=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __new__() got an unexpected keyword argument 'spam' |
|
Date |
User |
Action |
Args |
2017-03-20 19:15:26 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, brett.cannon, pitrou, JelleZijlstra, Jim Fasarakis-Hilliard |
2017-03-20 19:15:26 | serhiy.storchaka | set | messageid: <1490037326.45.0.177191485152.issue29847@psf.upfronthosting.co.za> |
2017-03-20 19:15:26 | serhiy.storchaka | link | issue29847 messages |
2017-03-20 19:15:26 | serhiy.storchaka | create | |
|