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

php做网站安全wap网站界面

php做网站安全,wap网站界面,近期重大新闻,抖音代运营网本文实例讲述了Python 使用元类type创建类对象。分享给大家供大家参考#xff0c;具体如下#xff1a;type(123) 可以查看变量的类型;同时 type(类名,(父类),{类属性:值,类属性2:值}) 可以创建一个类。在Python中不建议一个函数具有不同的功能(重载)…本文实例讲述了Python 使用元类type创建类对象。分享给大家供大家参考具体如下type(123) 可以查看变量的类型;同时 type(类名,(父类),{类属性:值,类属性2:值}) 可以创建一个类。在Python中不建议一个函数具有不同的功能(重载)type()具有不同的功能是为了兼容之前的版本。类可以创建实例对象类对象是由元类创建的。 (元类创建类类创建实例对象)type就是元类(type本质上就是一个类)demo.py(用元类type创建类)# 通过class关键字创建类class MyClass1(object):name 张三 # 类属性 (所有实例对象共用)age 23# 通过type创建类。 type()返回的是创建的类对象的引用。Test2 type(MyClass2,(object,),{name:张三,age:23}) # Test2是MyClass2类的引用一般变量名和类名保持一致。print(Test2()) # __main__.myclass2 object atdemo.py(用type创建带有方法的类)# 实例方法def print_b(self):print(self.num)# 静态方法staticmethoddef print_static():print(----haha-----)# 类方法classmethoddef print_class(cls):print(cls.num)# 用type创建类B type(B, (object,), {num:100, print_b: print_b, print_static: print_static, print_class: print_class})b B()b.print_b() # 100b.print_static() # ----haha-----b.print_class() # 100元类的应用在定义一个类的时候可以为其指定__metaclass__属性(指定创建该类的元类)默认使用type元类创建类对象。通过指定自定义的元类可以对类的创建进行拦截。可以对类名、继承的父类、属性(方法)做一些预处理。例如将类名大写默认继承object类添加、修改属性(方法)名(私有属性的伪私有化就是通过修改属性名实现的)。装饰器是对函数进行功能扩展(不用修改原代码)而元类可以对类进行功能扩展(添加额外的属性/方法)。demo.py(用函数指定__metaclass__属性)#-*- coding:utf-8 -*-def upper_attr(class_name, class_parents, class_attr):# class_name 会保存类的名字 Foo# class_parents 会保存类的父类 object# class_attr 会以字典的方式保存所有的类属性/方法# 遍历属性字典把不是__开头的属性名字变为大写new_attr {}for name, value in class_attr.items():if not name.startswith(__):new_attr[name.upper()] value# 调用type来创建一个类return type(class_name, class_parents, new_attr)class Foo(object, metaclassupper_attr): # python3的方式# python2.x的方式。# __metaclass__ upper_attr # 设置Foo类的元类为upper_attrbar bipprint(hasattr(Foo, bar))print(hasattr(Foo, BAR))f Foo()print(f.BAR)demo.py(用类指定__metaclass__属性)class UpperAttrMetaClass(type):# __new__ 是在__init__之前被调用的特殊方法# __new__是用来创建对象并返回之的方法# 而__init__只是用来将传入的参数初始化给对象# 你很少用到__new__除非你希望能够控制对象的创建# 这里创建的对象是类我们希望能够自定义它所以我们这里改写__new__# 如果你希望的话你也可以在__init__中做些事情# 还有一些高级的用法会涉及到改写__call__特殊方法但是我们这里不用def __new__(cls, class_name, class_parents, class_attr):# 遍历属性字典把不是__开头的属性名字变为大写new_attr {}for name, value in class_attr.items():if not name.startswith(__):new_attr[name.upper()] value# 方法1通过type来做类对象的创建return type(class_name, class_parents, new_attr)# 方法2复用type.__new__方法# 这就是基本的OOP编程没什么魔法# return type.__new__(cls, class_name, class_parents, new_attr)# python3的用法class Foo(object, metaclassUpperAttrMetaClass):bar bip# python2的用法# class Foo(object):# __metaclass__ UpperAttrMetaClass# bar bipprint(hasattr(Foo, bar))# 输出: Falseprint(hasattr(Foo, BAR))# 输出:Truef Foo()print(f.BAR)# 输出:bip更多关于Python相关内容感兴趣的读者可查看本站专题《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》希望本文所述对大家Python程序设计有所帮助。本文标题: Python 使用元类type创建类对象常见应用详解本文地址: http://www.cppcns.com/jiaoben/python/281126.html
http://www.yutouwan.com/news/92918/

相关文章:

  • 做机械有什么兼职网站网站建设预估费用
  • 高清网站建设的好处合同管理系统
  • 做58网站怎么赚钱wordpress编辑不了
  • saas网站建设满山红网站建设公司
  • 个人网站做跳转怎么弄公司自己买服务器建设网站
  • 云主机 网站吗重庆企业品牌网站建设
  • 吉首企业自助建站HTML发布网站
  • 网站建设维护工作职责重庆网站建设沛宣网络
  • 展示中心网站建设程序员网站
  • 广州出名的网站万户网站建设公司
  • 泊头网站建设网站icp备案费用
  • 主流网站开发语言wp wordpress
  • 六安网站定制沈阳男科医院排名前十
  • 网站 微信开发中国数据网
  • 能够做一镜到底的网站网站模块
  • 常州做网站信息商标注册查询系统
  • 怎么创建网站免费建立个人网站wordpress 首页不更新
  • 网站建设企业网站网站建设siteserver
  • 如何修改单页网站长春百度推广哪家好
  • 上传商品的网站如何创立自己的品牌
  • 东营网站备案代理公司网站建设带后台带微商城
  • 如何做外围网站的代理深圳龙华新区
  • 网站促销广告nofollow标签对网站收录的影响
  • seo优化网站优化计算机网站建设的能力
  • php网站的登陆注册怎末做的wordpress文件上传到那个文件
  • 中山手机网站建设电话杭州建设网站的公司哪家好
  • 做服饰网站wordpress登录修改密码
  • 那些网站被k恢复是怎么做的提高学历去哪里报名正规
  • 如何用国外网站做头条网站功能建设描述书
  • 用sql网站建设基本流程wordpress 4.3.1 漏洞