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

设计专业所需网站龙岗建设网站公司

设计专业所需网站,龙岗建设网站公司,建设工程项目管理规范,国际热点新闻__new__() 是一种负责创建类实例的静态方法#xff0c;它无需使用 staticmethod 装饰器修饰#xff0c;且该方法会优先 __init__() 初始化方法被调用。 一般情况下#xff0c;覆写 __new__() 的实现将会使用合适的参数调用其超类的 super().__new__()#xff0c;并在返回之…__new__() 是一种负责创建类实例的静态方法它无需使用 staticmethod 装饰器修饰且该方法会优先 __init__() 初始化方法被调用。 一般情况下覆写 __new__() 的实现将会使用合适的参数调用其超类的 super().__new__()并在返回之前修改实例。例如 class demoClass:instances_created 0def __new__(cls,*args,**kwargs):print(__new__():,cls,args,kwargs)instance super().__new__(cls)instance.number cls.instances_createdcls.instances_created 1return instancedef __init__(self,attribute):print(__init__():,self,attribute)self.attribute attributetest1 demoClass(abc)test2 demoClass(xyz)print(test1.number,test1.instances_created)print(test2.number,test2.instances_created) 输出结果为 __new__(): class __main__.demoClass (abc,) {} __init__(): __main__.demoClass object at 0x0000026FC0DF8080 abc __new__(): class __main__.demoClass (xyz,) {} __init__(): __main__.demoClass object at 0x0000026FC0DED358 xyz 0 2 1 2 __new__() 通常会返回该类的一个实例但有时也可能会返回其他类的实例如果发生了这种情况则会跳过对 __init__() 方法的调用。而在某些情况下比如需要修改不可变类实例Python 的某些内置类型的创建行为利用这一点会事半功倍。比如 class nonZero(int):def __new__(cls,value):return super().__new__(cls,value) if value ! 0 else Nonedef __init__(self,skipped_value):#此例中会跳过此方法print(__init__())super().__init__()print(type(nonZero(-12)))print(type(nonZero(0))) 运行结果为 __init__() class __main__.nonZero class NoneType 那么什么情况下使用 __new__() 呢答案很简单在 __init__() 不够用的时候。 例如前面例子中对 Python 不可变的内置类型如 int、str、float 等进行了子类化这是因为一旦创建了这样不可变的对象实例就无法在 __init__() 方法中对其进行修改。 有些读者可能会认为__new__() 对执行重要的对象初始化很有用如果用户忘记使用 super()可能会漏掉这一初始化。虽然这听上去很合理但有一个主要的缺点即如果使用这样的方法那么即便初始化过程已经是预期的行为程序员明确跳过初始化步骤也会变得更加困难。不仅如此它还破坏了“__init__() 中执行所有初始化工作”的潜规则。 注意由于 __new__() 不限于返回同一个类的实例所以很容易被滥用不负责任地使用这种方法可能会对代码有害所以要谨慎使用。一般来说对于特定问题最好搜索其他可用的解决方案最好不要影响对象的创建过程使其违背程序员的预期。比如说前面提到的覆写不可变类型初始化的例子完全可以用工厂​方法一种设计模式来替代​。 Python中大量使用 __new__() 方法且合理的就是 MetaClass 元类。有关元类的介绍
http://www.hkea.cn/news/14455536/

相关文章:

  • 江西建设厅特殊工种的网站永兴网站建设报价
  • 免费网站应用软件wordpress上传exe
  • 深圳营销型网站需要多少钱在线网页视频抓取工具
  • 网站群系统2345网址大全天气预报济南
  • 佛山网站建设制作找网络公司建网站每年收维护费
  • 国家重点项目建设部网站个人网站 云服务器
  • 网站如何做等保备案贵州省兴义市建设局网站首页
  • 网站开发设计工程师新网域名注册步骤
  • 外贸网站建设 联雅离我最近的广告公司
  • 建设网站的平台长春免费做网站
  • 栖霞网站定制公司给了一个邮箱怎么登录
  • 网站定制化价格wordpress 加载慢
  • 危险网站解除网站开发语言哪几种
  • linux网站建设技术指南wordpress下不了插件
  • 海外购物网站哪个最好建设工程信息服务平台官网
  • 安徽省新天源建设公司网站wordpress添加html
  • 郑州企业网站制作怎么做总结 设网站
  • 环保网站模板代码域名 空间 wordpress
  • 天津网站制作工具展厅设计与施工
  • wordpress js代码编辑器插件seo最好的网站源码
  • 顺义公司网站建设wordpress建站心得
  • 重庆知名网站建设免费wordpress新建页面显示数据库
  • 不懂英文怎么做英文的seo网站公司网址注册一般需要多少钱
  • app免费制作网站模板快速网站建设费用
  • 湘潭城乡建设发展集团网站经典广告案例
  • 凡科做的网站好吗撩人的网站怎么做
  • 京东商城的网站怎么建设的网站建设 展滔科技大厦
  • 上海网站设计哪家好西安网页设计制作介绍
  • 商城开发网站免费个人网站建站源码
  • 框架布局技术制作一个网站从做系统后以前的网站打不开了怎么办