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

网站商城与网站区别资源分享网站怎么做

网站商城与网站区别,资源分享网站怎么做,做aa视频网站,广东网页制作二级考试题目今天学习面向对象里的类被del函数的垃圾回收过程搞的晕头转向#xff0c;经过了老师的讲解还是是懂非懂#xff0c;然后看了很多博客慢慢的心里才有了个大概的了解。 刚刚看到一篇博客#xff0c;觉得讲的很好#xff0c;转载过来以供参考。以下转自笨笨D幸福博客#xff…今天学习面向对象里的类被del函数的垃圾回收过程搞的晕头转向经过了老师的讲解还是是懂非懂然后看了很多博客慢慢的心里才有了个大概的了解。 刚刚看到一篇博客觉得讲的很好转载过来以供参考。以下转自笨笨D幸福博客http://blog.csdn.net/bbdxf/article/details/25774763 探索过程 1、经过查找Python中没有专用的构造和析构函数但是一般可以在__init__和__del__分别完成初始化和删除操作可用这个替代构造和析构。还有一个__new__用来定制类的创建过程不过需要一定的配置此处不做讨论。 2、类的成员函数默认都相当于是public的但是默认开头为__的为私有变量虽然是私有但是我们还可以通过一定的手段访问到即Python不存在真正的私有变量。如 01.__priValue 0 #会自动变形为_类名__priValue的成员变量 3、由于Python的特殊性全局成员变量是共享的所以类的实例不会为它专门分配内容空间类似于static具体使用参看下面的例子。 测试1 01.#encoding:utf8 02.03.classNewClass(object):04. num_count 0 #所有的实例都共享此变量即不单独为每个实例分配 05. def __init__(self,name):06. self.name name07. NewClass.num_count 108. printname,NewClass.num_count 09. def __del__(self):10. NewClass.num_count - 1 11. print Del,self.name,NewClass.num_count12. deftest():13. print aa 14.15.aa NewClass(Hello)16.bb NewClass(World)17.cc NewClass(aaaa)18.19.print Over 调试运行 01.Hello 1 02.World 2 03.aaaa 3 04.Over05.DeException l Hello 2 06.AttributeError: NoneType object has no attribute num_count in ignored07.Exception AttributeError: NoneType object has no attribute num_count in 我们发现num_count 是全局的当每创建一个实例__init__()被调用num_count 的值增一当程序结束后所有的实例会被析构即调用__del__() 但是此时引发了异常。查看异常为 “NoneType” 即 析构时NewClass 已经被垃圾回收所以会产生这样的异常。 但是疑问来了为什么会这样按照C/C等语言的经验不应该这样啊经过查找资料发现 Python的垃圾回收过程与常用语言的不一样Python按照字典顺序进行垃圾回收而不是按照创建顺序进行。所以当系统进行回收资源时会按照类名A-Za-z的顺序依次进行我们无法掌控这里的流程。 明白这些我们做如下尝试 01.#encoding:utf8 02.03.classNewClass(object):04. num_count 0 #所有的实例都共享此变量即不单独为每个实例分配 05. def __init__(self,name):06. self.name name07. NewClass.num_count 108. printname,NewClass.num_count 09. def __del__(self):10. NewClass.num_count - 1 11. print Del,self.name,NewClass.num_count12. deftest():13. print aa 14.15.aa NewClass(Hello)16.bb NewClass(World)17.cc NewClass(aaaa)18.19.delaa20.delbb21.delcc22.23.print Over 调试输出 01.Hello 1 02.World 2 03.aaaa 3 04.Del Hello 2 05.Del World 1 06.Del aaaa 007.Over OK一切按照我们预料的顺序发生。 但是我们总不能每次都手动回收吧这么做Python自己的垃圾回收还有什么意义 SO继续查找我们还可以通过self.__class__访问到类本身然后再访问自身的共享成员变量即 self.__class__.num_count , 将类中的NewClass.num_count替换为self.__class__.num_count 编译运行如下 01.#encoding:utf8 02.03.classNewClass(object):04. num_count 0 #所有的实例都共享此变量即不单独为每个实例分配 05. def __init__(self,name):06. self.name name07. self.__class__.num_count 108. printname,NewClass.num_count 09. def __del__(self):10. self.__class__.num_count - 1 11. print Del,self.name,self.__class__.num_count12. deftest():13. print aa 14.15.aa NewClass(Hello)16.bb NewClass(World)17.cc NewClass(aaaa)18.19.print Over 结果 01.Hello 1 02.World 2 03.aaaa 3 04.Over05.Del Hello 2 06.Del World 1 07.Del aaaa 0
http://www.pierceye.com/news/718821/

相关文章:

  • 北京房地产网站建设做app还是做微网站好
  • 网站建设的整个流程管理咨询公司网站
  • 长沙网站建设有限公司怎么做网站赚大钱
  • 找做网站页的在哪找沭阳建设局网站
  • 私人做网站有什么用不断加强门户网站建设
  • WordPress简单百度站长插件使用cms建设网站安全吗
  • 响水做网站价格余江网站建设
  • 好的免费个人网站网站建设所需要的材料
  • 南宁本地网站有哪些建筑工程网络组网
  • 如何构建一个网站wordpress更换ssl
  • 做电影网站需要注意什么安徽易企建站
  • 莆田网站格在哪里做网站数据维护
  • 建设的网站别人登录密码做个企业网站多少钱
  • 邢台网站推广怎么做好网站推理
  • 网站项目需求盐城网站开发基本流程
  • 桐乡市城乡规划建设局网站网站企业备案和个人备案的区别
  • 公职人员可以做公益网站吗dw做的网站怎么放到服务器上
  • wordpress 导航网站模板wordpress建立企业网站
  • 厦门网站建设哪里好青岛做网站电话
  • 中国做网站正邦自己建站模板
  • 网站设计公司如何盈利安阳做网站多少钱
  • 简述网站开发的主要阶段邢台短视频推广
  • 黑彩网站充值就给你做单子青岛高品质网站建设
  • 网站建设是固定资产还是列费用矿泉水瓶50种手工制作
  • 兰州 网站建设凡客优品家居
  • 国内免费网站服务器推荐夸克网页版
  • 旅游型网站开发网站开发语言分析
  • 上海 网站建设平台 补贴始兴县建设局网站
  • 湘潭学校网站建设 z磐石网络桥 网站建设
  • 自建外贸网站多少钱长春新冠最新情况