专栏首页python3python2中为什么在进行类定义时最好

python2中为什么在进行类定义时最好

# -.- coding:utf-8 -.-
# __author__ = 'zhengtong'


class Person:
    """
    不带object
    """
    name = "zhengtong"


class Animal(object):
    """
    带有object
    """
    name = "chonghong"

if __name__ == "__main__":
    x = Person()
    print "Person", dir(x)

    y = Animal()
    print "Animal", dir(y)

运行结果

Person ['__doc__', '__module__', 'name']
Animal ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', 
'__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', 
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name']

Person类很明显能够看出区别,不继承object对象,只拥有了doc , module 和 自己定义的name变量, 也就是说这个类的命名空间只有三个对象可以操作. Animal类继承了object对象,拥有了好多可操作对象,这些都是类中的高级特性。

对于不太了解python类的同学来说,这些高级特性基本上没用处,但是对于那些要着手写框架或者写大型项目的高手来说,这些特性就比较有用了,比如说tornado里面的异常捕获时就有用到class来定位类的名称,还有高度灵活传参数的时候用到dict来完成.

最后需要说清楚的一点, 本文是基于python 2.7.10版本,实际上在python 3 中已经默认就帮你加载了object了(即便你没有写上object)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 我的python学习--第五天

    简单的理解,模块就是文件,我们可以使用import,把其他文件的内容引入,进行使用

    py3study
  • python3 类、对象的基础概念

    py3study
  • python函数中带*及**参数

        另外还可以传入两种特殊的参数:带*或**的参数。这两类形式的参数都可以传入任意数量的实参,它们的不同点主要在于*参数传入的为一个元祖(tuple);**...

    py3study
  • 【SSH快速进阶】——Hibernate继承映射:每个具体类映射一张表

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

    DannyHoo
  • 【Angular专题】——(2)【译】Angular中的ForwardRef

    先做一个小声明,我们现在拥有一个AppComponent,并使用DI系统向其中注入了一个NameService,因为我们使用的是Typescript,所以需要做...

    大史不说话
  • javascript当中Object用法

    9)Object 例 3.9.1 <head> <meta http-equiv="content-type" content="text/html; ...

    马克java社区
  • Python进阶-内置函数大全

    字节数组 字节是计算机的语言,字符串是人类语言,它们之间通过编码表形成一一对应的关系

    小团子
  • win10的虚拟桌面

    每创建一个虚拟桌面,就像打开了一个新的工作空间。在新的空间中,你能够开启一套完全不同的任务,而不用担心和以前的任务窗口混杂陈列。

    明天依旧可好
  • 为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动

    今天是农历鼠年大年初六,本文是鼠年第6篇文章,也是汪子熙公众号第205篇原创文章。

    Jerry Wang
  • 快速解决jupyter notebook启动需要密码的问题

    jupyter notebook安装完成之后需要密码,还有某些情况下也会出现需要输入密码的情况

    砸漏

扫码关注云+社区

领取腾讯云代金券