type( ) 创建类
Posted nayike
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了type( ) 创建类相关的知识,希望对你有一定的参考价值。
对象是由类创建的,类是由type创建的。
熟悉的方式:
class A(object): pass print(type(A)) #<class ‘type‘>
type方式:
A = type(‘A‘,(object,),{}) print(type(A)) #<class ‘type‘>
参数格式:
type(class_name,bases,dic) 要动态创建一个class对象,type()函数依次传入3个参数: 1、class的名称,字符串形式; 2、继承的父类集合,注意Python支持多重继承,如果只有一个父类,注意tuple的单元素写法; 3、{k:v} 或者 dict(k=v)
例一:
class Foo(object): class Meta: model = ‘qwer‘ 由type创建: _meta = type(‘Meta‘,(object,),{‘model‘:‘qwer‘}) Foo = type(‘Foo‘,(object,),{‘Meta‘:‘_meta‘})
例二:
老规矩,来个熟悉的:
class Hello(object): def hw(self,name=‘World‘): print(‘Hello,%s‘%name) h = Hello() h.hw() print(type(Hello)) print(type(h)) #输出结果: # Hello,World # <class ‘type‘> # <class ‘__main__.Hello‘>
再换个:
def func(self,name=‘World‘): print(‘Hello,%s‘%name) Hello = type(‘Hello‘,(object,),{‘hw‘:func}) h = Hello() h.hw() print(type(Hello)) print(type(h)) #数据结果: # Hello,World # <class ‘type‘> # <class ‘__main__.Hello‘> #注释:class的方法名称与函数绑定,这里我们把函数func绑定到方法名hw上。
以上是关于type( ) 创建类的主要内容,如果未能解决你的问题,请参考以下文章
在android studio中升级repo v9后,片段必须是公共静态类崩溃错误
SpringBoot启动报错“Consider defining a bean of type ‘xxx.mapper.UserMapper‘ in your configuration.“(代码片段
detectron2报AttributeError: Attribute ‘evaluator_type‘ does not exist in the metadata of dataset(代码片段