python全栈内置函数以及双下方法

两个内置函数:

内置函数还有很多,这里先记载两个。

  1. isinstance() 判断对象所属类型,包括继承关系
  2. issubclass() 判断类与类之间的继承关系
class A:
	pass
class B(A):
	pass
b = B()
print(isinstance(b,B))
print(isinstance(b,A))
#两个都返回True
class A:pass
class B(A):pass
print(issubclass(B,A)) #返回True,B是A的子类
print(issubclass(A,B)) #返回False

___名字__:

有四种叫法:
是类中的特殊方法
双下方法
魔术方法
内置方法

_call_:

class A:
	def __call__(self,*args,**kwargs):
		print("执行call方法")
a = A()
a() #对象名() 相当于调用__call__方法
#或者
a = A()()

___len ___:

class Mylst:
	def __init__(self):
		self.lst = [1,2,3,4,5,6]
		self.name = 'alex'
	def __len__(self):
		print("执行__len__了")
		return len(self.lst)
l = Mylst()
print(len(l)

len(obj) 相当于调用了这个obj的__len__方法
_len_ 方法return的值就是len函数的返回值
如果一个obj对象没有__len__方法,那么len函数会报错

___new ___: 构造方法

class Single:
    def __new__(cls, *args, **kwargs):
        obj = object.__new__(cls)
        print("在new方法里",obj)
        return obj

    def __init__(self):
        print("在init方法里",self)
s = Single()

1、开辟一个空间,属于对象的
2、把对象的空间传给self,执行init
3、将这个对象的空间返回给调用者

发布了26 篇原创文章 · 获赞 5 · 访问量 777

猜你喜欢

转载自blog.csdn.net/weixin_44730235/article/details/105272560