python 使用元类type创建类
作者:Silent丿丶黑羽 发布时间:2021-06-27 21:11:48
标签:python,元类,type,创建类
前言:
通常我们创建类都是使用class
类名,但是小伙伴们有没有想过,类是由谁来创建的呢,python
中常说的万物皆对象,对象是由类创建的,那类本身也可以看做是对象,类可以由元类type
创建
1、type动态创建类
1.1 语法格式
type
(类名,由父类名称组成的元组(可以为空),包含属性的字典(名称和值))
1.2 案例1:使用type创建类
Person = type("Person", (), {})
p = Person()
print(type(p))
print(Person.__name__)
结果:
<class '__main__.Person'>
Person
注意:type("Person", (), {})中的Person可以写成其他任意字符串,但是打印类的名称时,就会变成你写其他字符串了
Person = type("Per", (), {})
p = Person()
print(Person.__name__)
结果:
Per
所以为了程序代码更加友好,一般变量名和设置的类名保持统一
1.3 案例2:使用type创建带有属性(方法)的类
def show(self):
print("展示自己")
Person = type("Person", (), {"age": 18, "name": "jkc", "show": show})
p = Person()
print(p.age)
print(p.name)
p.show()
结果:
18
jkc
展示自己
我们动态创建了一个父类为Object
,属性有age
、name
、方法为show
的类
1.4 案例3:使用type动态创建一个继承指定类的类
class Animal:
def __init__(self, color="blue"):
self.color = color
def eat(self):
print("吃东西")
Dog = type("Dog", (Animal, ), {})
dog = Dog()
dog.eat()
print(dog.color)
结果:
吃东西
blue
我们动态创建了一个继承Animal
类的Dog
类,可以使用Animal
类的所有方法和属性
来源:https://www.cnblogs.com/jiakecong/p/14717441.html
0
投稿
猜你喜欢
- 1.说明redis作为一个缓存数据库,在各方面都有很大作用,Python支持操作redis,如果你使用Django,有一个专为Django搭
- 如何用表单的方式推送请求的信息?具体见下:<html><head><title>答复用户信息
- 本文实例讲述了php+Memcached实现简单留言板功能。分享给大家供大家参考,具体如下:MyPdo.php<?phpclass M
- 1. 不使用全局变量,适当封装2. 兼容性还行~~3. 代码短,可读性凑合~~呵呵~~~~~a. 拖动效果,16行JS<!DOCTYP
- 前言我们将利用 Beautiful Soup 模块的搜索功能,根据标签名称、标签属性、文档文本和正则表达式来搜索。搜索方法Beautiful
- 客户强烈要求使用淘宝的首页商品分类效果,很BT~,没辙就满足一下人家的需求。通过淘宝案例,立即想到了显示/隐藏层的效果,于是在DW中画了几个
- 本文实例分析了javascript定义变量时带var与不带var的区别。分享给大家供大家参考。具体分析如下:直接看实例里说明:<scr
- 如何用ASP发送带附件的邮件?请问如何用CDONTS组件发送带附件的邮件? 见下列代码:<%&nb
- 前言大家好,我是小张~记得小时候,家里只有一个钟表用来看时间(含有时针、分针、秒针的那种),挂在墙上哒哒哒响个不停,现在生活条件好了、基本人
- python解决循环依赖1.概述在使用python开发过程中在引入其他模块时可能都经历过一个异常就是循环引用most likely due
- SQL2005的存储过程: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROC
- 数据库中提取长长的文章,总是有碍网页的排版布局。所以,想固定地提取一部分字符,然后后面有……替代。相关推荐:当标题不能显示完整的时候 1、原
- 首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的, 所以一般用户无法更改密码,除非请求管理员。方法一使用ph
- 我来讲解属性部分, 这是相当有用的, 可要认真上课.首先,jquery中对html标签属性进行操作的关键词是 attr .没错,就4个字母,
- 一、Tensorlow结构import tensorflow as tfimport numpy as np#创建数据x_data = np
- 可以使用 Application 对象在给定的应用程序的所有用户之间共享信息。基于 ASP 的应用程序同所有的 .asp 文件一样在一个虚拟
- 这段时间在处理SQL server 2000 SP4补丁打不上的问题上花了不少时间,回头想想应该总结一下:系统说明:dell1800服务器,
- 最近项目中要用到一个正则表达式,排除某个字符串,我们知道排除单个字符串的话,可以用[^abc],这样就可以排除a或者b或者c了,但是要排除a
- 脚本架构:domain_test.py:批量解析运行主程序DomainResult.txt:域名解析结果文件domains.txt:解析的域
- 效果展示打地鼠小游戏简介打地鼠的游戏规则相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠呗~首先,让我们确定一下游戏