в математике я понимаю
y = [1,2,3] x = y.__add__(4,5) # 1,2,3,4,5
а вот в функций
__add__(self,other) // self + other
P.S если не трудно объясните, спасибо
y = [1,2,3] x = y.__add__(4,5) # 1,2,3,4,5
__add__(self,other) // self + other
Shyt_nikэто не работаетy = [1,2,3] x = y.__add__(4,5) # 1,2,3,4,5
>>> lst = [1, 2, 3] >>> lst + [4, 5] [1, 2, 3, 4, 5] >>> lst.__add__([4, 5]) [1, 2, 3, 4, 5] >>>
>>> 'abc'.upper() 'ABC' >>> str.upper('abc') 'ABC' >>>
>>> class List(list): ... def __add__(self, v): ... print('self:', self) ... print('value:', v) ... return list.__add__(self, v) ... >>> lst = List([1, 2, 3]) >>> >>> lst + [4, 5] self: [1, 2, 3] value: [4, 5] [1, 2, 3, 4, 5] >>>
class FastFunctor(object): def __add__(self,obj):
asilyatorНет, если method обернут декоратором @staticmethod, @classmethod или method - это какой-то свой хитрый дескриптор, будет другое.
А всегда class.method(obj) равносильно obj.method(), если obj - экземпляр class?
class Foo(object): def bar(self, *args): print self, args @classmethod def baz(cls, *args): print cls, args @staticmethod def qux(*args): print args foo = Foo() Foo.bar(foo) Foo.baz(foo) Foo.qux(foo)
>>> str.maketrans({1: 2}) {1: 2} >>>
str.maketrans({1:2})
“”.maketrans({1:2})
asilyatorпишу для той, которая является текущей на python.org
Пжалста, пишите версию питона. Дефолт питон не обязательно тройка.
3.0 2.6 2008 PSF yes 3.0.1 3.0 2009 PSF yes 3.1 3.0.1 2009 PSF yes 3.1.1 3.1 2009 PSF yes Hit Return for more, or q (and Return) to quit: 3.1.2 3.1.1 2010 PSF yes 3.1.3 3.1.2 2010 PSF yes 3.1.4 3.1.3 2011 PSF yes 3.2 3.1 2011 PSF yes 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.2.3 3.2.2 2012 PSF yes
asilyatorпопробуй какой-нибудь обычный метод вызвать без экземпляра
Он хоть и не требует, но может вызываться и как статический, и как динамический метод.
>>> str.center(10) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: descriptor 'center' requires a 'str' object but received a 'int' >>> str.center('abc', 10) ' abc ' >>>