每日10行代码5:探究内建属性和方法:__class__, __base__

继续前一章,探究下python的内建属性和方法。

print("".__class__)
print([].__class__)
print("".__class__.__base__)
print("".__class__.__base__.__class__)
print("".__class__.__base__.__base__)

class MyownClass():
    def __init__(self):
        self.name = "a"


print(MyownClass().__class__)
print(MyownClass().__class__.__base__)
print(object().__class__.__subclasses__)

def test():
    print("hello")

print(test)

输出结果:

<class 'str'> 	# __class__ 类似于type()方法
<class 'list'>	 
<class 'object'>	# __class__ 的基类是object
<class 'type'>    # <class 'object'> 的类是type
None	# object类的基类是空
<class '__main__.MyownClass'>	# 我自己的类名
<class 'object'>	# 我自己定义的类的基类也是object
<built-in method __subclasses__ of type object at 0x61A20AA8>	# 提示是一个内建方法
<function test at 0x0049B660>	# 我定义的函数

以上代码说明了以下几点知识:

  1. 所有类的最终的基类是object类。
  2. __subclasses__的不是一个内建属性,而是一个内建方法,所以应该使用__subclasses__()方法
print(object().__class__.__subclasses__())

输出结果:

[<class 'type'>, <class 'weakref'>, <class 'weakcallableproxy'>, <class 'weakproxy'>, <class 'int'>, <class 'bytearray'>, <class 'bytes'>, <class 'list'>, <class 'NoneType'>, <class 'NotImplementedType'>, <class 'traceback'> ……

总体来说,像这些内建属性和内建方法以及type()这种函数都有助于我们理解代码本身,编程时我们经常会遇到一些字符,比如一个x,我们看到他并不知道这个变量到底是什么,是整型,还是列表,还是一个方法名,还是一个对象,是一个类,这时候我们就可以用以上的那个函数去了解这个字符所代表的真实含义。
当然这些内建属性、方法、函数也不止这一个作用,在其他地方,他肯定也有着别的作用,只不过现在我不知道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值