Python 入门笔记20——面向对象进阶

1495-冯同学

发表文章数:80

首页 » 算法 » 正文

object 根类

object 类是所有类的父类,因此所有的类都有 object 类的属性和方法。我们显然有必要深入研究一下 object 类的结构。对于我们继续深入学习 Python 很有好处。

dir()查看对象属性

为了深入学习对象,我们先学习内置函数 dir(),他可以让我们方便的看到指定对象所有的属性。

查看对象所有属性以及和 object 进行比对:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age



def say_age(self): print(self.name, "的年龄是:", self.age)


obj = object()
print(dir(obj))
s2 = Person("高淇", 18)
print(dir(s2))

执行结果:
[‘class’, ‘delattr’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘le’, ‘lt’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘sizeof’, ‘str’, ‘subclasshook’]
[‘class’, ‘delattr’, ‘dict’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘le’, ‘lt’, ‘module’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘weakref’, ‘age’, ‘name’, ‘say_age’]

从上面我们可以发现这样几个要点:

  1. Person 对象增加了六个属性:
    dict module weakref age name say_age
  2. object 的所有属性,Person 类作为 object 的子类,显然包含了所有的属性。
  3. 我们打印 age、name、say_age,发现 say_age 虽然是方法,实际上也是属性。只不过,这个属性的类型是“method”而已。
    age
    name
    say_age

重写__str__()方法

object 有一个__str__()方法,用于返回一个对于“对象的描述”,对应于内置函数 str()经常用于 print()方法,帮助我们查看对象的信息。str()可以重写。

代码示例:

#测试重写object的__str__()

class Person:       #默认继承object类

    def __init__(self,name):
        self.name = name

    def __str__(self):
        return "name:{0}".format(self.name)

p = Person("russell")
print(p)

name:russell

未经允许不得转载:作者:1495-冯同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Python 入门笔记20——面向对象进阶》 发布于2021-03-15

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录