python基础 -34- 面向对象(动态生成一个类)
class Person:def __init__(self, name, age):self.name = nameself.age = ageperson = Person("小贵", 25)
print(type(person))
print(type(Person))
输出
<class '__main__.Person'>
<class 'type'>
上述代码中,person 是通过 Person 类实例化的对象,其实,不仅 person 是一个对象,Person类本身也是一个对象,因为在Python中一切事物都是对象。
如果按照一切事物都是对象的理论:person对象是通过执行Person类的构造方法创建,那么Person类对象应该也是通过执行某个类的 构造方法 创建。
所以,person对象是Person类的一个实例,Person类对象是 type 类的一个实例,即:Person类对象 是通过type类的构造方法创建。
type是如何创建一个类的呢?
def __init__(self, age):self.age = agedog_class = type("Dog", (), {"role": "dog","__init__": __init__})
print(dog_class.role)dog = dog_class(25)
print(dog.age)
输出
dog
25
了解类本身是通过type创建的还是挺重要的,以后我们在代码中就可以动态的生成类了,而不是提前必须先定义好。 以后学到django web框架时,生成动态表单就用到这个知识点。
python基础 -34- 面向对象(动态生成一个类)相关推荐
- JAVA基础加强(张孝祥)_类加载器、分析代理类的作用与原理及AOP概念、分析JVM动态生成的类、实现类似Spring的可配置的AOP框架...
1.类加载器 ·简要介绍什么是类加载器,和类加载器的作用 ·Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader ...
- 【Java进阶】有哪些方法可以在运行时动态生成一个Java类?
在开始今天的学习前,我建议你先复习一下专栏第 6 讲有关动态代理的内容.作为 Java 基础模块中的内容,考虑到不同基础的同学以及一个循序渐进的学习过程,我当时并没有在源码层面介绍动态代理的实现技术, ...
- Python成长之路【第九篇】:Python基础之面向对象
一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程–>错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个人 ...
- (转)Python成长之路【第九篇】:Python基础之面向对象
一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...
- python基础之面向对象编程
python基础之面向对象编程 面向对象编程思想 面向对象是一门编程思想,编程思想仅仅是一门思想,与任何技术无关 核心是对象两字,对象可以理解为特征与技能的结合体 基于该编程思想编写程序,就好比创造世 ...
- 5.Python基础之面向对象
文章目录 Python基础之面向对象 面向对象的三大特性 类和对象的关系 类的组成 类的书写规则 实例化对象 检测类和对象的成员 类和对象成员的操作 类成员操作 对象成员操作 关于self 封装特性 ...
- Python基础_07_面向对象1
python基础7_面向对象1 文章目录 python基础7_面向对象1 一.面向对象:类和对象.魔法方法 1. 面向对象编程概述 1.1[了解]面向过程和面向对象的区别 1.2[知道]类和对象介绍 ...
- 9.动态生成实体类,根据XML模板使用Emit生成动态类绑定到DataGrid
在实际项目中,我们可能会遇到用户自定义XML模板字段,根据这个模板上的字段来显示相应的字段的值到DataGrid.在这种情况下,需要使用 XmlReader解析获取这个用户自定义的XML模板上有哪些字 ...
- 通过爬取天猫商品评论实例分析Python爬取ajax动态生成的数据
本文主要通过爬取天猫商品kindle的评论为例来说明利用python爬取ajax动态生成的数据的方式,本文使用的工具如下: 工具 chrome浏览器[寻找评论的动态链接] python3.5[执行代码 ...
最新文章
- java中8种基本类型与运算符
- labelImg 使用教程 图像标定工具
- 简化软件产品的实际步骤
- php日期的怎么判断同一天,php如何判断两个时间戳是一天
- linux之mutex(互斥锁)
- jMatter:提高开发速度10倍!
- Ubuntu 扩展内存或断电之后卡在 /dev/sda1 clean 和 /dev/sda1 recovering journal
- C#非泛型集合类-使用HashTable组织数据
- 钉钉怎么设置考勤打卡规则
- java中查询redis中hash结构的值_阿里面试官:HashMap 熟悉吧?来聊聊 Redis 吧
- NEXTCHIP图像品牌ISP和AHD都是有哪些功能?型号有多少型号?
- 猫加路由加服务器加交换机怎么配置文件,光猫接交换机和路由器,怎么设置?...
- unbalanced calls to begin/end appearance transitions for uiviewcontroller的解决方法
- android 带刻度的滑动条_Android实现滚动刻度尺效果
- 【Day5.4】高棉风格的柴瓦塔纳兰寺
- Appgamekit制作消消乐小游戏(附代码)# 4
- Android传感器介绍及指南针的实现
- 一个机器人,主要由哪几部分组成?
- 只是有一天freeeim
- UVa12099书架
热门文章
- 微积分:闭区间上 有界、可积、连续、可导 的强弱关系
- 包含min函数的栈和两个栈实现一个队列
- SQL回炉重造07_函数
- SpringBoot普通参数与基本注解(@PathVariable、@RequestHeader、@RequestParam、@RequestBody)
- 最全-python教程示例大全 同步学习
- 虚拟机 xp 3d加速问题
- 家用计算机中PCB板材质,介绍PCB电路板的主要原材料
- Springboot母婴店购物系统9j5v8计算机毕业设计-课程设计-期末作业-毕设程序代做
- hadoop dremel Caffeine Pregel
- rust怎么拆除墙壁指令_腐蚀RUST基本指令及服务器指令大全