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

python元类学习笔记

一 对于python类带括号和不带括号的区别:

class User(object):
    def __init__(self, name):
        self.name = name


a = User   # a和User等价
print(a)
print(a == User)
a.name = 'aaa'
print(User.name)

print('-'*10)

b = User('bbb')   # b是User的一个实例对象
print(b)
print(User.name)

输出结果:
<class '__main__.User'>
True
aaa
----------
<__main__.User object at 0x104e206a0>
aaa

  

二 python中的类同样也是对象

三 使用type创建类

type(类名, 父类的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))
class User(object):
  name = "aaa"
User = type('User', (), {"name": "aaa"})

  

Python中的类也是对象,元类就是用来创建这些类的,元类就是类的类

函数type实际上是一个元类。type就是Python在背后用来创建所有类的元类

str是用来创建字符串对象的类,而int是用来创建整数对象的类。type就是创建类对象的类

转载于:https://www.cnblogs.com/django-start/p/10162325.html

相关文章:

  • 570. Managers with at Least 5 Direct Reports
  • Drop和Truncate与Delete的区别
  • bzoj2595: [Wc2008]游览计划
  • C# 很少人知道的科技
  • asp.net——公共帮助类
  • 什么是二次开发
  • C++ 解析json串
  • 系统管理员需知的 16 个 iptables 使用技巧
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • 《HelloGitHub》第 33 期
  • grep-学习记录
  • 面试题30:包含 min 函数的栈
  • intellij中导入java包
  • Java模仿http请求工具类
  • 数据结构之链表 给定一个链表,判断链表中是否有环。
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • Angular4 模板式表单用法以及验证
  • css选择器
  • ECS应用管理最佳实践
  • jdbc就是这么简单
  • js正则,这点儿就够用了
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 力扣(LeetCode)357
  • 自定义函数
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​插件化DPI在商用WIFI中的价值
  • #FPGA(基础知识)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (Java数据结构)ArrayList
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (三)uboot源码分析
  • (转)一些感悟
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NetCore部署微服务(二)
  • .net流程开发平台的一些难点(1)
  • .NET设计模式(11):组合模式(Composite Pattern)
  • @EventListener注解使用说明
  • @KafkaListener注解详解(一)| 常用参数详解
  • @RequestParam详解
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [20180129]bash显示path环境变量.txt
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [CF543A]/[CF544C]Writing Code
  • [CQOI 2010]扑克牌
  • [error] 17755#0: *58522 readv() failed (104: Connection reset by peer) while reading upstream
  • [HDU5685]Problem A
  • [IE9] GPU硬件加速到底是实用创新还是噱头
  • [Java并发编程实战] 共享对象之可见性