博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的类成员和对象成员
阅读量:6898 次
发布时间:2019-06-27

本文共 1043 字,大约阅读时间需要 3 分钟。

hot3.png

Python中有个类成员的概念,绝对是困扰新手的问题。看看下面的代码就知道两者的区别了。

#!/usr/bin/python# -*- coding: utf-8 -*-import timefrom datetime import datetimeclass Worker:    def working(self):        print self        for i in xrange(3):            print datetime.now().strftime('%H:%M:%S')            time.sleep(1)class Bundle:    _worker = None    name = ''    def __init__(self, name = ''):        self.name = name        @property    def worker(self):        if self._worker is None:            #两个不同worker对象            self._worker = Worker()            #同一个worker对象,但如果是不同进程的worker对象肯定不同            #self.__class__._worker = Worker()        return self._worker            def run(self):        print self.name        self.worker.working()                        if __name__ == '__main__':    b1, b2 = Bundle('b1'), Bundle('b2')    b1.run()    b2.run()

为什么要弄出个怪异的类成员,记得Python中一切都是对象吗,类和函数也是对象。Python创建对象时,是用的和IoLang一样的原型设计模式,将类对应复制一份,再在其基础上修改得到对象;和Java的基于类模板创建对象的方式有些不同,所以Python的__init__()叫做初始化方法,而不是构造函数,它控制的就是刚才所说修改这部分行为。

转载于:https://my.oschina.net/ryanliu/blog/531944

你可能感兴趣的文章
JAVA——导出excel表格
查看>>
配置linux用户实现禁止ssh登陆但可用sftp登录
查看>>
当前用户权限赋值给另一个用户
查看>>
MFC_CProgressCtrl进度条
查看>>
linux 安装java jdk8
查看>>
读《冷读术》有感
查看>>
脚本中echo显示内容带颜色显示
查看>>
Android中Parcelable接口的使用
查看>>
我的友情链接
查看>>
java反射简单例子
查看>>
spring-session redis集群配置步骤总结
查看>>
Broadcom 4365(如:Dell vostro 3460)笔记本wifi无法使用解决办法
查看>>
LVS/DR+heartbeat实现高可用负载均衡服务
查看>>
单臂路由的原理及实验
查看>>
web前端开发中浏览器兼容问题(六)
查看>>
程序员应该怎样?
查看>>
离线快速部署Mirantis Openstack 9.0
查看>>
至少我还有腿
查看>>
怎样设计才能让文字排版更好看(三)
查看>>
【转】panabit+syslog打造中小型企业流量监控系统
查看>>