我正在编写一个方法装饰器,并要求访问定义当前修饰的方法的类。
问题在于,对于Python 3,类中的方法只是函数,除非类被实例化。
有办法绕过这件事吗?我不想摆弄__qualname__.
In [29]: class A:
....: def B(self):
....: pass
....:
In [30]: A.B.__qualname__
Out[30]: 'A.B'
# This is what I want:
>>> get_class(A.B)
A
我有下一个代码
def timer_dec(f):
def wrapper(*args, **kwargs):
t = time.time()
args[0].debug('<{}> start'.format(f.__name__))
res = f(*args, **kwargs)
args[0].debug('<{}> finish'.format(f.__name__))
args[0].debug("Working time for
python中的abstractmethod decorator做什么?
from abc import abstractmethod
class Animal(object):
@abstractmethod
def walk(self):
''' data '''
pass
@abstractmethod
def talk(self):
''' data '''
pass
class D
我正在尝试在python中实现一个抽象类。以下是我的代码:
from abc import ABCMeta, abstractmethod
class Vehicle:
__metaclass__ = ABCMeta
def __init__(self, miles):
self.miles = miles
def sale_price(self):
"""Return the sale price for this vehicle as a float amount.""
请原谅我对描述符和装饰符的互换使用。我可能在这里弄错了他们中的一些人。
我想要编写(许多)声明性地指定其方法的类:
class Foo:
@method_metadata(0,1,2)
def some_method(self,input):
print("I received some input: "+input)
其目的不是改变方法的行为,只是注册(0,1,2)与此方法相关联。
我写了下面的描述符来实现这一点。它给了我三样东西中的两样:
class method_metadata:
# 1 - I need to gather
我在以下类的__init__方法中的flask/helpers.py中添加了一条assert False语句: class locked_cached_property(object):
"""A decorator that converts a function into a lazy property. The
function wrapped is called the first time to retrieve the result
and then that calculated result is used the next
尝试在python 3中的基类上使用装饰类,但不完全理解我所观察到的行为。
class tagged:
""" Decorator itself. """
def __init__(self, regClass, *args, **kwargs):
""" called after class definition """
print(self, regClass, regClass.name)
@tagged
class Base(object):
我想在python中添加一个新功能,纯粹是为了实验目的,我想扩展装饰器语法。目前,装饰器可以应用于函数和类。我还想在循环(例如for循环)和代码块上使用装饰器。
示例1:
@foo
for i in range(20):
# do something
# and something more
示例2:
@foo
# there's a block starting from an indent here.
# there's some code now
# do someth
我目前遇到了一个问题,我在POST请求时使用线程在后台执行任务,但我在使用整数作为参数或任何数据类型作为参数时遇到了问题。
应该发生的是,它应该执行POST请求检查中的所有内容,然后在完成检查后执行其他操作。
导入:
from flask import Flask, url_for, render_template, redirect, request
from flask.cli import with_appcontext, click
import sqlalchemy
from flask_sqlalchemy import SQLAlchemy
from flask_login im
我的网站有一个警报系统。当发生特定操作时,系统会记录以下模型的警报:
class Alert(models.Model):
title = models.CharField(max_length=60)
read = models.BooleanField #if this is a new alert of not
for_user = models.ForeignKey(User) #which user will see it
link = models.CharField(max_length=100)
许多功能需要检查用户的警报数量(主要是为了在站点的
假设我有:
class User():
def method(self):
pass
u=User()
如何通过u.method装饰器从access提取类?我从u.method得到的只是一个函数.但我想知道class是从哪来的。
我对python2.7的解决方案感兴趣。
Update:我忘记提到我没有给出足够的细节:
class access():
"""
Decorator for specifying which 'access right' must be enforced
at the object met