20201203_104.object根类_dir()

首页 » Python » 正文

查看类的继承层次结构

通过类的方法 mro()或者类的属性__mro__可以输出这个类的继承层次结构。

【案例】 查看类的继承层次结构

class A:
    pass


class B(A):
    pass


class C(B):
    pass


print(C.mro())

运行结果:
20201203_104.object根类_dir()
继承关系示意图:
20201203_104.object根类_dir()

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('{}的年龄是:{}'.format(self.name, self.age))


obj = object()  # 注意object是小写开头。
print(dir(obj))

s1 = Person('李四', 22)
print(dir(s1))

运行结果:
20201203_104.object根类_dir()
运行结果完整版:
20201203_104.object根类_dir()
解说,从上面我们可以发现这样几个要点:

  1. Person 对象增加了六个属性:
    有__dict__ 有__module__ 有__weakref__
    有age 有name 有say_age
    (ps:加个有字是因为如果字母两边只打下划线会被Markdown解释器显示为加粗,下划线就不显示了。)
  2. object 的所有属性,Person 类作为 object 的子类,显然包含了所有的属性。
  3. 我们打印 age、name、say_age,发现 say_age 虽然是方法,实际上也是属性。只不过,这个属性的类型是“method”而已。
    age <class ‘int’>
    name <class ‘str’>
    say_age <class ‘method’>

注:关于 object 这些属性的详细学习,在后面学习中逐个涉及,在此不一一展开。

未经允许不得转载:作者:1324-易同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《20201203_104.object根类_dir()》 发布于2020-12-04

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

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

支付宝扫一扫打赏

微信扫一扫打赏

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

登录

忘记密码 ?

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

Q Q 登 录
微 博 登 录