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

如何制作手机商城网站如何注册一个自己的公司

如何制作手机商城网站,如何注册一个自己的公司,网站设计与制作成品作品,wordpress身份认证元类 “元类就是深度的魔法#xff0c;99%的⽤户应该根本不必为此操⼼。 如果你想搞清楚 究竟是否需要⽤到元类#xff0c;那么你就不需要它。 那些实际⽤到元类的⼈都⾮常 清楚地知道他们需要做什么#xff0c;⽽且根本不需要解释为什么要⽤元类。“——蒂姆彼得斯TimPeter…元类 “元类就是深度的魔法99%的⽤户应该根本不必为此操⼼。 如果你想搞清楚 究竟是否需要⽤到元类那么你就不需要它。 那些实际⽤到元类的⼈都⾮常 清楚地知道他们需要做什么⽽且根本不需要解释为什么要⽤元类。“——蒂姆·彼得斯TimPeters 什么是元类 在python中所有的类都是基于元类创建的。 class demo(object):pass在python中一切都是对象类也是对象所以一个类必定会有一个类型。 此处的object是所有python类层次结构的基类也就是说所有的类都是继承它的。 那么object又是什么类型 print(type(object))我们打印出来看一下 class type显示的就是元类。 我们回到前面说的那句话再加上注解会更容易理解了。 在python中一切都是对象(object)类(class)也是对象(object)所以一个类(class)必定会有一个类型(type)。用来创建类的类叫做元类函数type实际上也是一个元类。python中任何形式类以及python3中的任何类都是type元类的一个实例。 需要注意的是我们要区分元类和继承的基类 type是元类所有的类都是通过type所创建出来的object顶层的基类所有类的继承顶层父类都是objecttype是创造者女娲object是女娲创造的第一个孩子。不是很准确但这样好理解 参数详解 type源码 class type(object):type(object_or_name, bases, dict)type(object) - the objects typetype(name, bases, dict) - a new type源码中写道使用type(name, bases, dict)就可以定义一个新的元类。 参数详解 name 表示要创建的类的名称。字符串类型 bases : 继承类的基类元组或包含基类的元类。元组类型 dict : 类属性和方法。字典类型 自定义类与元类创建的比对 我们自己创建类代码如下 class MyClass(object):x 42obj MyClass() print(obj.x) # 输出42这里类名为MyClass继承了基类object属性为x42 那么我们就按照元类创建类的方式构造一个和如上类一样功能的类。 MyClass type(MyClass,(object,),{x:42}) obj MyClass() print(obj.x) #输出42由于object是默认继承的基类bases参数可以为空代码如下 MyClass type(MyClass,(),{x:42}) obj MyClass() print(obj.x) #输出42既然我们可以自己创建类为什么要用元类 别问问就回去文章开头TimPeters说的那句话。 深入一下 经过上面的例子我们知道了object是所有类的基类而type是创建类的类那么我如果把基类修改了是不是创建出来的类就是自动继承了我所修改后的基类 定义一个元类 声明一个类并继承自type类。在元类中定义__new__方法该方法用于创建新的类。在__new__方法中可以自定义类的行为、属性和方法。 class MyMeta(type):def __new__(meta, name, bases, attrs):# 自定义类的行为print(想不到吧我才是基类)# 创建并返回新的类return super().__new__(meta, name, bases, attrs)使用元类动态创建类 在创建类时可以使用metaclass参数指定所使用的元类。 声明一个普通的类并将metaclass参数设置为定义的元类metaclass默认为type class MyClass(metaclassMyMeta):# 类的定义hh 123print(呜呜呜我就是一个普通的类,可我的元类不是type了而是自定义的)运行以上代码 aa MyClass() print(aa.hh) #输出结果如下 呜呜呜我就是一个普通的类,可我的元类不是type了而是自定义的 想不到吧我才是基类 123如果我们没有指定元类为自定义的元类输出将会没有想不到吧那一行。 class MyClass2():# 类的定义h 123print(呜呜呜我就是一个普通的类,可我的元类不是type了而是自定义的)aa MyClass2() print(aa.h) #输出结果如下 呜呜呜我就是一个普通的类,可我的元类不是type了而是自定义的 123用元类写一个简单的日志记录器 class LogMeta(type):def __new__(meta, name, bases, attrs):# 检查属性中的日志消息logs {}for key, value in attrs.items():if isinstance(value, str) and value.startswith(LOG ):logs[key] value# 添加日志方法for key in logs.keys():def log_func(self, message):print(fLog {key}: {message})attrs[key] log_func# 创建并返回新的类return super().__new__(meta, name, bases, attrs)class MyLogger(metaclassLogMeta):LOG_INFO LOG INFOLOG_ERROR LOG ERRORLOG_WARNING LOG WARNING 在上面的示例中我们创建了一个LogMeta元类它通过检查类属性中的日志消息并动态创建日志方法。然后我们使用LogMeta元类创建了一个MyLogger类并在其中定义了几个日志消息。最后我们可以使用MyLogger类创建对象并调用日志方法。 logger MyLogger() logger.LOG_INFO(This is an informational message.) logger.LOG_ERROR(An error occurred.)当我们运行上面的代码时它将输出以下内容 Log LOG_WARNING: This is an informational message. Log LOG_WARNING: An error occurred.下一节我们讲讲如何将它运用在我们的测试框架里面动态创建测试用例。
http://www.zqtcl.cn/news/885704/

相关文章:

  • VPS做镜像网站wordpress 安装七牛
  • 雄安做网站优化的公司小程序开发公司哪里强
  • 做的网站没有注册国家建设部网站倪虹
  • 中英文网站怎么实现做网站有名的公司
  • 先网站开发后软件开发显示网站运行时间代码
  • 品牌网站制作流程图百度网页版入口页
  • 哪些人需要做网站网站开发工程师 招聘
  • 东莞网站建设多长时间如何将网址提交到一些权重比较高的网站
  • 阳江网站seo公司wordpress建站博客
  • 我想做京东网站淘宝怎么做的wordpress淘宝联盟转链
  • 虚拟钱包对接网站开发视频教程营销型网站建设要懂代码吗
  • 莱州教育网站一站式网站搭建
  • 开发网站开票名称是什么捕鱼游戏网站开发商
  • 我国中小企业网站建设怎样办自己的网站
  • 如何推广自己网站链接通化北京网站建设
  • 小型的游戏网站怎么做WordPress设置作者信息
  • 网站建设师要求关键词优化排名易下拉排名
  • 网站建设步骤及推广方法做网站的公司叫什么
  • 怎么建立自己网站 asp网站做视频流量赚钱
  • 全屏网站宽度域名服务器怎么设置
  • 网站图片切换js代码金融公司网站方案
  • 企业网站开发步骤开源软件开发
  • 建设项目环境影响登记表备案系统网站签署网站建设协议新闻
  • 有的网站在浏览器打不开怎么办最近中国新闻热点大事件
  • 网站模板组件随州网站建设有哪些
  • 网站建设微信版8080端口wordpress
  • 急求聊城网站建设微信网页注册入口
  • 商城网站建站程序网站内链布局
  • 盐城网站建设方案全景旅游网站项目建设
  • 网站备案完电信园林效果图网站