首页 > 编程语言 >python元类

python元类

时间:2024-05-27 16:57:01浏览次数:24  
标签:__ 自定义 python 元类 bases attrs cls

  • 介绍

    python中的"类"也是对象,加载"类"也有创建对象的过程。
    用于创建"类"对象的,就是元类。
    元类可以自定义。
  • 元类示例

    class DemoMeta(type):
     def __new__(cls, name, bases, attrs):
       cls_instance = super().__new__(cls, name, bases, attrs)
       # name: 类名|str
       # bases: 继承的类|tuple
       # attrs: 类属性|dict
       return cls_instance
  • 使用元类

    # 指定metaclass为自定义元类
    class Test(metaclass=DemoMeta):
     pass
  • 使用元类的场景

    需要自定义类加载逻辑时。

     

标签:__,自定义,python,元类,bases,attrs,cls
From: https://www.cnblogs.com/CJTARRR/p/18215927

相关文章

  • Python面向对象——创建类:学生成绩等级
    题目:不同分数对应等级,score>=90分为“优秀”,80<=score<90为“良好”,70<=score<80为“中等”,60<=score<70为“及格”,score<60为“不及格”。1学习创建类采用classclassPerson:#创建类country="Chinese"#类属性,可以通过类名来访问def__init__(......
  • Python实现求多个集合之间并集的方法
    目的:求多个集合之前的并集,例如:现有四个集合C1={11,22,13,14}、C2={11,32,23,14,35}、C3={11,22,38}、C4={11,22,33,14,55,66},则它们之间的并集应该为:C1&C2&C3={11}、C1&C2&C4={14}、C1&C3&C4={22}。如下图所示:实现方法:Python自带了......
  • Python中类创建和实例化过程
    一、type()1、创建类的两种方式方式一classMyClass(object):deffunc(self,name):print(name)myc=MyClass()print(MyClass,type(MyClass))print(myc,type(myc))我们创建了一个名为MyClass的类,并实例化了这个类,得到其对象myc上面代码打印的结果为:<......
  • python实现获取成员所在的多个位置
    注:本代码主要是为了实现多个集合之间求并集时的辅助代码,简单的举个例子来说明代码的功能。约定:例如{11:[2,3]}表示数据11在集合2和集合3中都存在。现有以下数据:d0={38:[2],11:[2,3],22:[2,3]}d1={11:[0,0,1,3],13:[0,0],22:[0,0,3],14:[0,0,1,3]......
  • Python小技巧:一种字符串的排序方式
    1.排序方式假设有一个序列,数据为:['n1','n2','n10','n11','n21','n3','n13','n20','n23'],排序后需要达到这个效果:['n1','n2','n3','n10','......
  • Python(四)——基础控制流程语句:简单用户登录和输出10以内的奇偶数
    例子1:编写一小段代码,输入正确的账号和密码实现登陆操作。利用input函数判断用户名和密码是否正确,正确输出“欢迎您!“,用户名默认admin,密码默认为123代码实现:username=input("请输入用户名:")password=input("请输入密码:")ifusername=="admin":ifpassword=="123......
  • Python可以声明并赋值一个hash类型变量吗?
    在Python中,不能直接声明一个变量为`hash`类型,因为Python是一种动态类型语言,不需要(也不能)在声明变量时指定其类型。变量的类型是根据赋给它的值自动推断的。将一个哈希值(即一个整数)赋值给一个变量,这个哈希值可以是通过调用内置`hash()`函数获得的任何对象的哈希值。例如:```pyt......
  • python-装饰器
    装饰器基本样式defdecorator(func):defwrapper(*args,**kwargs):print("before")res=func(*args,**kwargs)print("after")returnresreturnwrapper@decoratordeffunc():print("hello&quo......
  • python模块之smtplib邮件处理模块
    要求:发送一封简单的邮件发送html格式的邮件在邮件中带图片发送邮件步骤:1.登录邮件服务器2.构造符合邮件协议规则的邮件内容3.发送python对SMTP支持有smtplib和email模块,email负责构造邮件,smtplib负责发送邮件importsmtplibfromemail.mime.textimportMIMETextf......
  • Python闭包和装饰器原理
    #Python闭包和装饰器#############闭包##############'''1.一个外层函数,内嵌一个内层函数;2.内层函数使用外层函数的参数;3.外层函数将内层函数作为返回值返回'''#外层函数defouter(msg):#内层函数definner():#内层函数使用外......