关于元类操作方法问题

来源:8-7 通过元类实现orm-2

东泽XD

2020-07-09

现有两种元类下的__new__方法

def __new__(mcls, *args, **kwargs):
	cls = super().__new__(mcls,*args,**kwargs)
	#对cls进行属性操作
	return cls

def __new__(cls, *args, **kwargs):
	# 对args等内置属性进行操作
	return super().__new__(cls, name, bases, attrs, **kwargs)

请问这两种方法有什么区别,应用方向有什么不同。
提前谢谢老师

写回答

1回答

bobby

2020-07-10

这俩其实没有区别 只是下面更加明确的指明了name和bases属性而已

0
2
bobby
回复
东泽XD
这个简单啊 看看是否在实例的__dict__中就行了 dict中方的是实例的属性 否则是类的属性
2020-07-12
共2条回复

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2121 学习 · 551 问题

查看课程