当前位置: 首页 > news >正文

求个国外在线网站网站 刷流量 SEO

求个国外在线网站,网站 刷流量 SEO,php商业网站制作,广告赚钱一、什么是元类 在 Python 中#xff0c;一切皆为对象#xff0c;即类也是一个对象。type 是内置的元类。我们用 class 关键字定义的所有的类以及内置的类都是由元类 type#xff08;内置的元类#xff09; 实例化产生的。 class Person:def __init__(self, name, age):se…一、什么是元类 在 Python 中一切皆为对象即类也是一个对象。type 是内置的元类。我们用 class 关键字定义的所有的类以及内置的类都是由元类 type内置的元类 实例化产生的。 class Person:def __init__(self, name, age):self.name nameself.age agedef show_info(self):print(fname: {self.name}, age: {self.age})print(type(Person)) print(type(int))当 Python 解释器遇到 class 的时候实际上会进行调用其目的是至少要知道有哪些属性有哪些方法然后将这些类属性、方法传递到元类 type 中进行创建一个对象这个对象就是我们所谓的类对象。 二、class机制分析 # 1、类名 class_name Person # 2、类的基类 class_base (object,) # 3、执行类体代码拿到类的名称空间 class_dict {name: unknown} class_body def __init__(self, name, age):self.name nameself.age agedef show_info(self):print(fname: {self.name}, age: {self.age}) exec(class_body, {}, class_dict) print(class_dict)# 4、调用元类 Person type(class_name, class_base, class_dict) print(Person)# 5、创建对象 p Person(Sakura, 10) p.show_info()# 1、类名 class_name Person # 2、类的基类 class_base (object,) # 3、执行类体代码拿到类的名称空间 def show_info(self):print(fname: {self.name})classmethod def description(cls):print(f{cls.name}是一个人)staticmethod def static():print(我是一个静态方法)class_dict {name: unknown, show_info: show_info, description: description, static: static}# 4、调用元类 Person type(class_name, class_base, class_dict) print(Person)# 5、创建对象 p Person() p.show_info() p.description() p.static()三、自定义元类 # 只有继承了type类的类才是元类 class MyMeta(type):# cls当前所在的类*args、**kwargs调用类时所传入的参数def __new__(cls,*args,**kwargs):print(__new__()方法运行了)print(cls)print(args)print(kwargs)return type.__new__(cls, *args, **kwargs)# __init__()接收的参数是__new__()方法返回的def __init__(self, class_name, class_bases, class_dict):print(__init__()方法运行了)print(self)print(class_name)print(class_bases)print(class_dict)def __call__(self,*args,**kwargs):print(self)print(args)print(kwargs)# MyMeta.__call__()方法会先调用Person类内的__new__()方法obj self.__new__(self)# MyMeta.__call__()方法内会调用Person类内的__init__()方法self.__init__(obj,*args,**kwargs)# MyMeta.__call__()方法会返回一个初始化好的对象return obj 调用MyMeta发生的三件事1、先造一个空对象调用类内的__new__()方法就是调用type.__call__()方法2、调用MyMeta这个类内的__init__()方法完成初始化对象的操作3、返回初始化好的对象 Person MyMeta(class_name,class_bases,class_dict)类的产生Person MyMeta() -- type.__call__()干的三件事1、type.__call__()方法内会先调用MyMeta类内的__new__()方法2、type.__call__()方法内会调用MyMeta类内的__init__()方法3、type.__call__()方法会返回一个初始化好的对象class Person(metaclassMyMeta):def __new__(cls,*args,**kwargs):# 产生真正的对象return object.__new__(cls)def __init__(self,name,age):self.name nameself.age agedef show_info(self):print(fname: {self.name}, age: {self.age}) 类的调用p Person(Sakura,10) -- MyMeta.__call__()干的三件是1、MyMeta.__call__()方法内会先调用Person类内的__new__()方法2、MyMeta.__call__()方法内会调用Person类内的__init__()方法3、MyMeta.__call__()方法会返回一个初始化好的对象p Person(Sakura,10) print(p) print(p.__dict__)# 只有继承了type类的类才是元类 class MyMeta(type):def __new__(cls, class_name, class_base, class_dict):print(__new__()方法运行了)# 方法1通过type来做类对象的创建return type(class_name, class_base, class_dict)# 方法2复用type.__init__()方法#return type.__new__(cls, class_name, class_base, class_dict)class Person(metaclassMyMeta):def __init__(self,name,age):self.name nameself.age agedef show_info(self):print(fname: {self.name}, age: {self.age})p Person(Sakura,10) print(p) print(p.__dict__)只要调类那么会依次调用类内的 __new__() 方法在调用 __init__() 方法 如果想要一个对象可以加括号调用需要在该对象的类中添加一个 __call__() 方法 四、利用元类实现单例模式 class MyType(type):def __init__(self, name, base, attrs):super().__init__(name, base, attrs)self.instance Nonedef __call__(self, *args, **kwargs):# 判断是否有对象有则不创建没有则创建if not self.instance:# 调用自己的那个类的__new__()创建对象self.instance self.__new__(self)# 调用自己的那个类的__init__()初始化对象self.__init__(self.instance, *args, **kwargs)return self.instanceclass P(metaclassMyType):passp1 P() print(p1)p2 P() print(p1)
http://www.hkea.cn/news/14530510/

相关文章:

  • 网站设计怎么算间距河北高端网站建设
  • 如何做社交网站色彩搭配的网站
  • 上海网站建设网站优化app抖音代运营需要什么
  • 如何创建网站推广产品网络推广员一个月多少钱
  • 学做网站视频教程pc 移动端网站建设
  • 五个常见的电子商务网站网址小型门户网站模板
  • 湖南省新化县建设局网站linux wordpress 中文字体
  • 响应式网站怎么做pc端的flash 网站引导页
  • 长兴网站制作公司网站建设价格是多少
  • 尤溪住房和城乡建设局网站东莞电子网站建设
  • 网站游戏网站怎么做wordpress精简版
  • 网站建设公司郴州wordpress外网ip访问
  • 深圳做app网站制作厦门管网建设公司
  • 网站做一样的算侵权么怎么向国外打广告
  • 谢岗做网站洛阳网上房地产
  • 网站建设开票分类编码国内高端大气的网站设计
  • 福永三合一网站设计网站关键词推广哪家好
  • qqip.探测网站建设做外贸网站需要多少钱
  • 做网站都要学什么深圳财务小公司网站
  • 注册网站邮箱发送的验证网页无法打开深圳做网站比较好的公司有哪些
  • 长沙网站优化步骤百度答主招募入口官网
  • 做网站跟赚钱嘛建行信用卡中心官网
  • 外贸网站推荐登封搜索引擎优化
  • vue cdn做的网站平台开发的基本流程
  • 企业建设官方网站的目的企业网站建设选题依据
  • 华硕建设公司网站网站建设 2018
  • php网站api接口写法怎么做自己的推广网站
  • 有哪些网站可以做笔译免费搭建网站哪个好
  • 北京做网站哪家公司最好广州最富裕的三个区
  • 企业网站建设合同范本怎样让百度搜索到自己的网站