Re: [Q] override __init__() method of classes implemented in C

2014-06-30 Thread Chris Angelico
On Mon, Jun 30, 2014 at 5:45 PM, Makoto Kuwata k...@kuwata-lab.com wrote:
 Result (Python 2.7.7 and 3.4.1):

 Traceback (most recent call last):
  File hoge.py, line 7, in module
obj = Foo()
 TypeError: Required argument 'year' (pos 1) not found


 It seems to be failed to override datetime.__init__() in subclass.


Actually, __init__ isn't the problem here, __new__ is.

class Foo(datetime):
def __new__(self):
return super().__new__(self,2014,1,1)

 Foo()
Foo(2014, 1, 1, 0, 0)

Maybe that helps, maybe it doesn't, but the issue you're seeing is
specific to that class.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: [Q] override __init__() method of classes implemented in C

2014-06-30 Thread Makoto Kuwata
On Mon, Jun 30, 2014 at 4:52 PM, Chris Angelico ros...@gmail.com wrote:


 Actually, __init__ isn't the problem here, __new__ is.

 class Foo(datetime):
 def __new__(self):
 return super().__new__(self,2014,1,1)

  Foo()
 Foo(2014, 1, 1, 0, 0)

 Maybe that helps, maybe it doesn't, but the issue you're seeing is
 specific to that class.


Got it! Thank you!

--
regards,
makoto kuwata
-- 
https://mail.python.org/mailman/listinfo/python-list