Форум сайта python.su
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def d(fn):
print fn.__name__
#Получит сдесь Cls
class Cls(object):
@d
def pr(self):
print(a)
Офлайн
7
print fn.__class__
Офлайн
0
IsemВозращает <type ‘function’>. Не то.print fn.__class__
Офлайн
20
Вот так вот придумал:
def mydec(meth):
import inspect
clsframe = inspect.currentframe(1)
cls = clsframe.f_globals[clsframe.f_code.co_name]
return meth
Офлайн
0
Падает с ошибкой, но имя класса находит. Спасибо.
Ладно может я иду неправильной дорогой. Я написал небольшой модуль sender. Он занимается отправкой данных.
Например:
@sender.send_cls()
class Game(object):
send_start = 'getAllCoord', 'getAllDrawData'
send_request = 'getChangeCoord',
def getAllCoord(self):
return ....
def getAllDrawData(self):
return ...
def getChangeCoord(self):
return ...
@sender.send_cls()
class Game(object):
send_start = [['getAllCoord', 'vasya'], ['getAllDrawData', 'olya']]
send_request = [['getChangeCoord', 'kolya'],]
........
@sender.send_cls()
class Game(object):
@sender.send_meth('vasya')
def getAllCoord(self)
return ....
@sender.send_meth('olya')
def getAllDrawData(self):
return ...
@sender.send_meth('kolya')
def getChangeCoord(self):
return ...
Офлайн
14
Записывайте в send_meth параметры как атрибут у декорируемой функции. Из send_cls они доступны.
Офлайн
0
Андрей Светлов, пожалуй так и сделаю.
Офлайн