# 定义一个object类
class MyObject(object):
pass
# 定义一个int类
class MyInt(int):
pass
# 实例化MyObject
obj = MyObject()
# 检查obj是否是MyObject的实例
print(isinstance(obj, MyObject)) # True
# 检查obj是否是MyInt的实例
print(isinstance(obj, MyInt)) # False
调用这个方法将返回包含obj大多数属性名的列表(会有一些特殊的属性不包含在内)。obj的默认值是当前的模块对象。hasattr(obj, attr):
这个方法用于检查obj是否有一个名为attr的值的属性,返回一个布尔值。
getattr(obj, attr):
调用这个方法将返回obj中名为attr值的属性的值,例如如果attr为’bar’,则返回obj.bar。
setattr(obj, attr, val):
调用这个方法将给obj的名为attr的值的属性赋值为val。例如如果attr为’bar’,则相当于obj.bar = val。
在Python里,有一句话叫,一切皆对象。而对象的英文单词就是object。换句话这个object就代表了Python中的一切,开发Python的龟叔已经给object类定义常用的属性和方法供认识使用。
当在Python2中,你定义类的时候,加上object,用内置函数dir(你定义类的名字)查看属性和方法,你定义的类会默认继承object这个基类(父类)的属性和方法。如果不给object参数,dir时就只有你自己定义属性和方法,没有继承object的。
你可以下去动手试试(我是手机端回答的问题,抱歉无法演示截图)
然后,如果你使用的是Python3,当你定义类的时候,给了object参数就继承。不给object参数也会默认继承。不管你是
class A:
还是 class A():
都会自动的被Python识别为:
class A(object)(这也是Python3更人性化的一点)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)