python class instance object之间的区别
大家讲道理
大家讲道理 2017-04-17 11:12:49
[Python讨论组]

Python类的用法

第一种方法:

class OneObjectCreater():
    pass

第二种方法带有类的参数

class TwoObjectCreater(object):
    pass

都使用print出来,却有细微的差别;

if __name__ == "__main__":
    print OneObjectCreater()
    print TwoObjectCreater()

第一种输出:

<__main__.OneObjectCreater instance at 0xb7736eac>

第二种输出:

<__main__.TwoObjectCreater object at 0xb7736eac>

这样的区别对于使用有什么讲究,什么时候使用calss(),什么时候使用class(object)?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
ringa_lee

自从python2.2开始,继承与Object的class被叫做"New-Style Class"。

供参考:

http://stackoverflow.com/questions/54...

http://docs.python.org/2/reference/da...

http://www.python.org/doc/newstyle/

怪我咯

class()叫做经典类,而class(object)叫做新式类,新式类貌似是从2.2开始引入的。经典类是为了向后兼容,所以最好还是使用新式类,至于两者有什么区别?我也在学习:)

天蓬老师

Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

class T:
... name = 'name'
... def hello(self):
... print 'hello'
...
t = T()
dir(t)
['doc', 'module', 'hello', 'name']
class R(object):
... name = 'name'
... def hello(self):
... print 'hello'
...
r = R()
dir(r)
['class', 'delattr', 'dict', 'doc', 'format', 'getattribute', 'hash', 'init', 'module', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook', 'weakref', 'hello', 'name']

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号