当前位置: 首页> 娱乐> 影视 > 体育新闻最新消息篮球_如何免费建立可以交流的网站_河北电子商务seo_sem

体育新闻最新消息篮球_如何免费建立可以交流的网站_河北电子商务seo_sem

时间:2025/9/24 19:47:04来源:https://blog.csdn.net/qq_41081716/article/details/144226554 浏览次数:0次
体育新闻最新消息篮球_如何免费建立可以交流的网站_河北电子商务seo_sem

@staticmethod

  1. 静态方法:staticmethod将一个普通函数嵌入到类中,使其成为类的静态方法。静态方法不需要一个类实例即可被调用,同时它也不需要访问类实例的状态。
  2. 参数:静态方法可以接受任何参数,但通常不使用self或cls作为第一个参数。
  3. 访问:由于静态方法不依赖于类实例的状态,因此它们不能修改类或实例的状态。
  4. 用途:当函数与类相关,但其操作不依赖于类状态时,适合使用静态方法

@classmethod

  1. 类方法:classmethod将一个方法绑定到类而非类的实例。类方法通常用于操作类级别的属性。
  2. 参数:类方法至少有一个参数,通常命名为cls,它指向类本身。
  3. 访问:类方法可以修改类的状态,但不能修改实例的状态。
  4. 用途:当方法需要访问或修改类属性,或者需要通过类来创建实例时,适合使用类方法

使用场景

  • 当方法不需要访问任何属性时,使用staticmethod
  • 当方法操作的是类属性而不是实例属性时,使用classmethod

代码示例

class MyClass:class_variable = "I'm a class variable."def __init__(self, value):self.instance_variable = value@staticmethoddef static_method():return "Static method called."@classmethoddef class_method(cls):return f"Class method called. Class variable: {cls.class_variable}"# 调用静态方法
MyClass.static_method()# 调用类方法
MyClass.class_method()

问题

在使用falsk-restful这个框架进行模型部署调用时,发现模型推理时间很快,但是完整的一次请求过程非常耗时。在debug的过程中发现,每次请求调用api接口时,模型的推理类都会被实例化,推理类在构造的时候,会在初始化中加载模型,加载模型的过程是耗时较长的。

fixbug

classs Infer(object):def __init__(self, cfg: dict)->None:self.cfg = cfgself.load_model(self.cfg)@classmethoddef load_model(cls, cfg: dict):cls.cfg = cfgif not hasattr(cls, "model"):cls.model = torch.load("xxx.pt")

通过@classmethod方法初始化模型的加载,相当于创建了一个全局变量,在后续的请求调用中,不会一直重复加载。

关键字:体育新闻最新消息篮球_如何免费建立可以交流的网站_河北电子商务seo_sem

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: