当前位置: 首页 > news >正文

江西哪里有做电商网站的公司微信小程序购物平台

江西哪里有做电商网站的公司,微信小程序购物平台,旅游区网站建设,做网站需要哪些方面的支出1. 基本概念 classmethod 是 Python 中用于定义类方法的一种装饰器。类方法与常规的实例方法不同,它的第一个参数是 cls,表示类本身,而不是实例。 class MyClass:class_attr "Class Attribute"classmethoddef class_method(cls):p…

1. 基本概念

@classmethod 是 Python 中用于定义类方法的一种装饰器。类方法与常规的实例方法不同,它的第一个参数是 cls,表示类本身,而不是实例。

class MyClass:class_attr = "Class Attribute"@classmethoddef class_method(cls):print(f"Accessing {cls.class_attr} via class method.")# 调用类方法(无需实例化)
MyClass.class_method()  # 输出: Accessing Class Attribute via class method.

2. classmethod vs staticmethod vs 实例方法

classmethod vs staticmethod vs 实例方法

3. classmethod 的优点

3.1 封装构造逻辑

将展开成对象的逻辑隔离在 class 内部,外部不需知道细节:

class Person:def __init__(self, name, age):self.name = nameself.age = age@classmethoddef from_string(cls, data_str):name, age = data_str.split(',')return cls(name, int(age))p = Person.from_string("Alice,30")
print(p.name, p.age)  # 输出: Alice 30

3.2 类状态管理

修改类属性或跨实例共享状态。

class MyClass:class_var = 0@classmethoddef my_class_method(cls, value):cls.class_var += value# 实例化前调用类方法
MyClass.my_class_method(10)a = MyClass()
b = MyClass()print(a.class_var)  # 10
print(b.class_var)  # 10# 修改类属性
MyClass.my_class_method(5)print(a.class_var)  # 15
print(b.class_var)  # 15# 给 a 实例设置同名属性
a.class_var = 100print(a.class_var)  # 100  -> 实例属性覆盖类属性
print(b.class_var)  # 15   -> 还是引用类属性
print(MyClass.class_var)  # 15

class_var 是类属性,属于类。
如果实例中没有 class_var,访问 obj.class_var 会去类中找。
一旦你给实例赋了 obj.class_var = 100,这个属性就变成了实例属性,不再和类属性同步。

3.3 易于维护

如果构造函数变了参数,只需修改 classmethod,外部使用不用改。

3.4 多样化构造方法

@classmethod
def from_dict(cls, d): ...@classmethod
def from_json(cls, j): ...

4. 子类是否需要重写 classmethod

需要:子类构造参数与父类不同、子类逻辑与父类不同
可以不写:父类方法已符合

5. classmethod + 多态封装

通过 @classmethod 实现多态,不同子类可自定义类方法行为。
父类定义类方法接口,子类重写实现多态。
调用时通过 cls 动态绑定到子类,避免硬编码类名。

class Animal:@classmethoddef make_sound(cls):raise NotImplementedError("Subclasses must implement this!")class Dog(Animal):@classmethoddef make_sound(cls):return "Woof!"class Cat(Animal):@classmethoddef make_sound(cls):return "Meow!"def animal_sound(animal_cls):print(animal_cls.make_sound())animal_sound(Dog)  # 输出: Woof!
animal_sound(Cat)  # 输出: Meow!
http://www.dtcms.com/a/437374.html

相关文章:

  • 网站导航条背景图片石家庄网站备案
  • 律师网站维护wordpress 书店
  • 网站开发文档要求软件外包公司哪个好
  • 深圳英文网站建设公司wordpress 媒体库 ftp
  • 网站开发有哪些课程班级网站自助建设功能
  • 昆明做一个公司网站多少费用企业建站都有什么网站
  • 怎么找人做网站视频综合平台是什么
  • 建设网站的网站.net 开发门户网站
  • 推广网站平台有哪些wordpress搜索筛选
  • 成都协会网站建设上海网站seo设计
  • 信誉好的镇江网站优化做网站的设计尺寸
  • 微信免费建站网络营销成功的原因
  • 美发网站带手机版网站备案用座机租用
  • 大良营销网站建设价位有什么网站可以做微信app
  • wordpress仿站步骤噼里啪啦电影免费观看高清
  • 靖江网站制作多少钱成都seo正规优化
  • 网站建设最新2023年房地产彻底结束
  • 手机网站自动跳转品牌网站开发价格
  • 网站什么时候做负载均衡网络公司网站推广
  • 东莞建外贸企业网站品牌做网站公司
  • 网络营销理论主要包括网站如何进行优化
  • 网站都有什么语言无锡高端网站设计
  • 长沙网站关键词排名百度竞价推广方案范文
  • wordpress 扒站网页版微信会在电脑上留下记录吗
  • 佛山家居网站全网营销微信网站开发设计
  • 做网站的公司名字国际军事新闻最近新闻
  • 邯郸景区网站制作wordpress图片自动打水印
  • 制作网站的专业公司做直播券的网站有多少钱
  • 近10天的时政新闻seo百度快照优化公司
  • 金昌大型网站建设费用楼盘怎么在网站上做推广