Возможно ли определить функцию без ссылки на self
таким образом?
def myfunc(var_a,var_b)
Но чтобы он также мог получать данные отправителя, как если бы я определил их так:
def myfunc(self, var_a,var_b)
То, что self
всегда одно и то же, поэтому здесь всегда выглядит несколько избыточным, чтобы запускать функцию следующим образом: myfunc(self,'data_a','data_b')
. Тогда я хотел бы получить свои данные в функции, как это sender.fields
.
UPDATE:
Вот код, чтобы лучше понять, что я имею в виду.
Приведенный ниже класс используется для отображения страницы, основанной на шаблонизаторе Jinja2, для регистрации пользователями.
class SignupHandler(webapp.RequestHandler):
def get(self, *args, **kwargs):
utils.render_template(self, 'signup.html')
И этот код ниже - render_template
, который я создал как оболочку для функций Jinja2, чтобы использовать его более удобно в моем проекте:
def render_template(response, template_name, vars=dict(), is_string=False):
template_dirs = [os.path.join(root(), 'templates')]
logging.info(template_dirs[0])
env = Environment(loader=FileSystemLoader(template_dirs))
try:
template = env.get_template(template_name)
except TemplateNotFound:
raise TemplateNotFound(template_name)
content = template.render(vars)
if is_string:
return content
else:
response.response.out.write(content)
Поскольку я очень часто использую эту функцию render_template
в своем проекте и, как правило, одинаково, только с разными файлами шаблонов, я подумал, есть ли способ избавиться от необходимости вызывать ее так, как я это делаю сейчас, с self в качестве первого аргумента, но все еще имеющий доступ к этому объекту.