python 用type()创建类
type()可以查看一个类型,也可以查看变量的类型
class Hello1(object):
def hello(self, name = 'world'):
print('Hello, %s' % name) h1 = Hello1()
h1.hello()
print(type(Hello1))
print(type(h1)) 输出:
Hello, world
<class 'type'> #Hello是一个class, 它的类型就是type
<class '__main__.Hello1'> #h1是一个实例,它的类型就是class Hello1
type()函数既可以返回一个对象的类型,也可以创建出新的class,如用type()函数创建出Hello类而无需通过class Hello(object):
def fn(self, name = 'world'): #先定义一个函数
print('Hello, %s' % name) Hello = type('Hello', (object, ), dict(hello=fn)) #创建Hello class,传入class的名称,继承的父类集合class的方法名与函数绑定,这里我们把fn绑定到hello上 h = Hello()
h.hello()
print(type(Hello))
print(type(h)) 输出:
Hello, world
<class 'type'>
<class '__main__.Hello'>
要创建Hello calss, 需要给type()传入3个参数:
1. class的名称,
2. 继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法
3. class的方法名称与函数绑定,这里我们是把fn绑定到方法名hello上
用type()创建的class和直接写class是完全一样的
python 用type()创建类的更多相关文章
- python——type()创建类
今天我算是长知识了,我是一个python菜鸟,以前一直认为type(A)可以返回A的类型,但是不知道type还可以用于创建class,这篇经验就是介绍一下如何用type()创建一个类,以及如何设置该类 ...
- python中动态创建类
class Foo(Bar): pass Foo中有__metaclass__这个属性吗?如果是,Python会在内存中通过__metaclass__创建一个名字为Foo的类对象(我说的是类对象,请紧 ...
- 09 Python两种创建类的方式
第一种比较普遍的方式: class Work(): def __init__(self,name): self.name = name w = Work('well woker') 这样就简单创建了一 ...
- type 创建类,赋予类\静态方法等
类方法 class ObjectCreator(object): pass @classmethod def testClass(cls): cls.temp = 666 print(cls.temp ...
- Python中type()详解:动态创建类
众所周知: type()函数可以查看变量的类型: 先看一个简单的列子来看一下type查看变量类型 class Animal(): pass a=Animal() print(type(a)) prin ...
- python之type函数
python 的type 函数 的介绍的 下面就是此函数的参数 三个参数的意义 '''type(class_name, base_class_tuple, attribute_dict)cla ...
- Python中的元类
从前面"Python对象"文章中了解到,在Python中一切都是对象,类可以创建实例对象,但是类本身也是对象. class C(object): pass c = C() prin ...
- python学习(十)元类
python 可以通过`type`函数创建类,也可通过type判断数据类型 import socket from io import StringIO import sys class TypeCla ...
- 理解python中的元类
一,理解类也是对象 在python中类同样也是一种对象,只要使用关键字class,Python解释器在执行的时候就会创建一个对象,这个对象(类)自身拥有创建对象(类实例)的能力,这就是为什么他是一个类 ...
- python中的元类介绍
类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段,在python中也是成立的. class ObjectCreator: pass my_object = ObjectCre ...
随机推荐
- CentOS7配置crate集群
一:编辑配置文件: 1.1配置文件: vim /etc/crate/crate.yml 1.2编辑crate.yml 的集群名称在166行附近: cluster.name: crate-xxx 1.3 ...
- Java语法基础学习DayTwo
一.数据类型补充问题 数据类型的自动转换等级: byte,short,char -- int -- long -- float -- double long是8个字节,float是4个字节,为什么是这 ...
- 2019.3.22 Week 11 : ZigBee power test and field test
Test require Zigbee sample:EFR32MG13 (RF layout has ) Gateway N4010A : 2.5Ghz 1Power test 2Field te ...
- centos服务器删除/usr目录怎么办
凉拌 两种方法: 第一:重装系统,因为你的大部分命令使用不了了,如果你的服务器还有应用程序在跑,那你的服务也会有问题,因为一些服务的lib包也会放在此目录下,貌似需要重新装才可以 第二:利用ios镜像 ...
- 将python环境打包成.txt文件
1 导出Python环境安装包[root@bogon ~]# pip freeze > packages.txt这将会创建一个 packages.txt文件,其中包含了当前环境中所有包及各自的版 ...
- 配置JAVA 环境变量
首先 下载好JDK后 打开环境变量配置 配置JAVA_HOME: C:\Program Files\Java\jdk1.8.0_144(也就是jdk下载后的文件夹) 之后配置PATH:这时用到%J ...
- angular 项目 error TS2451: Cannot redeclare block-scoped variable 'ngDevMode'
删除 node_modules ,用 npm install 就可以了, cnpm install (竟然不行)
- KB/MB/GB。。单位换算
今天遇到一个需求,需要把数据单位进行换算,记录一下.写的不好请勿见怪. function bytesToSize( bytes ) {//单位转化 var k = 1024, ...
- SQL server类型转换
1. CAST函数 语法: CAST ( expression AS data_type [ ( length ) ] ) | | | |关键字 表达式或值 要转换成的数据类型 最大长度 示例: SE ...
- MySQL的架构与历史
MySQL的最主要特性是它的存储引擎架构,这种架构设计将查询处理以及其他系统任务和数据的存储/提取相分离. MySQL最上层服务是一些如连接处理,授权认证,安全等. MySQL的核心服务功能大部分度在 ...