class SomeClass:
some_function = fn
self.some_function(...)
Как можно определить класс с атрибутом-функцией, чтобы в нее не передавался дополнительный аргумент?
class SomeClass:
some_function = fn
self.some_function(...)
def func():
return 0
class Test:
num = func
def __init__(self):
self.fn = func
if __name__=="__main__":
t = Test()
print t.fn()#0
print t.num()#TypeError: func() takes no arguments (1 given)
certanistaвсё правильно, если функцию прописать в теле класса, то при создании экземпляра создается связанный метод, а если присваивать атрибут в __init__ - то функция так и останется функциейИнтересно…def func():
return 0
class Test:
num = func
def __init__(self):
self.fn = func
if __name__=="__main__":
t = Test()
print t.fn()#0
print t.num()#TypeError: func() takes no arguments (1 given)
class C(object):
ff = func
def __init__(self):
self.fn = func
>>> c=C()
>>> c.ff
<bound method C.func of <__main__.C object at 0x00C5A8F0>>
>>> c.fn
<function func at 0x00C41DF0>
>>> dir(fn)
lass SomeClass:
some_function = staticmethod(fn)
Александр Кошелевтак значит staticmethod - это всего-лишьlass SomeClass:
some_function = staticmethod(fn)
def mystatic(fn):
def _mystatic(self, *args, **kw):
return fn(*args, **kw)
return _mystatic