Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查类的每个实例方法的条件?_Python_Python 3.x - Fatal编程技术网

Python 如何检查类的每个实例方法的条件?

Python 如何检查类的每个实例方法的条件?,python,python-3.x,Python,Python 3.x,每当调用一个类的实例方法时,我想检查一个if条件 例如,我们有一些构造函数类,它们有很多在有效负载构造方法中使用的属性,但它们也有有效负载属性,用户可以在其中传递有效负载字典,只要调用API请求,就可以直接使用它 对于每个有效载荷构造函数,我们必须在函数开始时检查 如果object.payload: 返回对象.payload 其他: #使用其他实例变量构造有效负载 “”“每个构造函数类都有有效负载属性”“” X类: “”“这是表示X对象的构造函数类”“” def _;初始(自身,有效负载=无)

每当调用一个类的实例方法时,我想检查一个
if条件

例如,我们有一些构造函数类,它们有很多在有效负载构造方法中使用的属性,但它们也有
有效负载
属性,用户可以在其中传递
有效负载字典
,只要调用API请求,就可以直接使用它

对于每个有效载荷构造函数,我们必须在函数开始时检查

如果object.payload:
返回对象.payload
其他:
#使用其他实例变量构造有效负载
“”“每个构造函数类都有有效负载属性”“”
X类:
“”“这是表示X对象的构造函数类”“”
def _;初始(自身,有效负载=无):
self.payload=有效载荷
Y类:
“”“这是表示Y对象的构造函数类”“”
def _;初始(自身,有效负载=无):
self.payload=有效载荷
类别CreatePayload:
定义初始化(self,api):
self.api=api
def为_x创建_json_(self,object_x):
如果对象x.payload:
返回对象x.payload
有效载荷={
“val”:object_x.val
}
返回有效载荷
def为_y(自身、对象_y)创建_json_:
如果对象是有效载荷:
返回对象_y.有效载荷
有效载荷={
“val”:object_y.val,
“用户”:对象\用户
}
返回有效载荷
def create_x(自身、对象_x):
uri=“/test\u x”
有效负载=为对象创建json
#发送请求方法发送HTTP GET/PUT/POST/DELETE请求
request=self.api.send\u请求(uri,'post',有效负载)
退货申请

我想要一个使用
装饰器
元类
的解决方案,它将对象作为输入,并始终检查它是否具有
有效负载
属性,然后返回
有效负载
值。

类似的东西可以完成任务吗

from functools import wraps
def return_payload(func):
    @wraps(func)
    def wrapped(self, obj, *args, **kwargs):
        if obj.payload:
            return obj.payload
        return func(self, obj, *args, **kwargs)
    return wrapped

class CreatePayload:
    def __init__(self, api):
        self.api = api
    
    @return_payload
    def create_json_for_x(self, object_x):
        payload = {
                   "val" : object_x.val
                  }
        return payload