class Bar:

def super_cool_function(self):

print("Cool")

1、利用Python闭包动态扩展类

通过在内部创建并从函数返回它来动态创建新类。

def get_class(superclass):

class Foo(superclass):

def __init__(self, ...):

...

return Foo

DynamicFoo = get_class(Bar)

myobj = DynamicFoo()

也可以更简单定义Foo类def get_class(superclass):

class Foo(superclass):

pass

return Foo

DynamicFoo = get_class(Bar)

myobj = DynamicFoo()

myobj.super_cool_function()

# Cool

2、通过type()动态创建类def fn(self,name="world"):

print("Hello,%s"%name)

Hello = type('Hello',(object,),dict(hello=fn))

h = Hello()

h.hello()

print(type(Hello))

print(type(h))

Hello,world

要动态创建一个class对象,type()函数依次传入3个参数:

1)class的名称,字符串形式;

2)继承的父类集合,注意Python支持多重继承,如果只有一个父类,注意tuple的单元素写法;

3)class的方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上。

python动态创建类_Python中通过参数动态创建扩展类(class)相关推荐

  1. python open函数创建文件_python中怎样使用open创建文件?

    我们在使用open函数的时候,一般用到的都是打开的功能,这和小伙伴们平常理解的名称意思是一致的.其实我们还可以使用open函数来创建一个file,也就是文本文件.在开始创建之前,我们需要对open函数 ...

  2. python dataframe去掉索引_python中pandas.DataFrame(创建、索引、增添与删除)的简单操作方法介绍...

    这篇文章python中pandas.DataFrame(创建.索引.增添与删除)的简单操作方法介绍,其中包括创建.索引.增添与删除等的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看 ...

  3. python怎么创建变量_Python中通过函数对象创建全局变量

    标签: 先看下面这段代码,显然无法work. 因为代码试图在TestVariableScope()中引用一个没有被定义的变量a.所以必须报错,如下图-1. 不过如果你将第2行代码注释掉.代码就能跑通了 ...

  4. python类_Python中的类

    Python和Java都是面向对象的语言,对象从类中获取,类指的是同一类具有相同特征的事物,比如拉布拉多,柯基,哈士奇,它们都是狗,具有狗的相同特征,所以可以被归为一类Dog,Python中类的使用与 ...

  5. C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)

    C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...

  6. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  7. PHP: 在类(class)中加载动态函数, 变量函数或半变量函数 variable function/method

    最终实例在下方 以前用过cakephp, 他们的数据库查询还是蛮强大的, 后来好奇它的类的写法,比如: <?php $this->Post->findByTitle('My Firs ...

  8. C++提高部分_C++类模板中成员函数的创建时机---C++语言工作笔记089

    然后我们再来看类模板中成员函数的创建时机是什么时候 可以看到,普通类中的成员函数一开始就可以创建了, 类模板中的成员函数在调用时才创建. 我们写个例子看看,可以看到我们写了一个Person1类,然后 ...

  9. python 类中定义类_Python中的动态类定义

    python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...

最新文章

  1. C++关键字deprecated
  2. PHP算法 《树形结构》 之 伸展树(1) - 基本概念
  3. 分布式计算框架Gearman原理详解
  4. Android获取设备已安装的应用
  5. 元素周期表排列的规律_中考化学:金属活动性顺序表和元素周期表规律总结
  6. lucene索引搜索_Lucene –快速添加索引和搜索功能
  7. 系统已有MYSQL环境,如何安装宝塔面板
  8. 程序人家:你的老板逼你上微服务了吗??
  9. SilverLight明日起通过微软更新推送
  10. webView图片点击可以实现预览效果
  11. PHP汉字转换拼音的函数代码
  12. 华为 ---- ISIS 协议
  13. Matlab 图像平移、旋转、缩放、镜像
  14. 《SteamVR2.0/Input》(Yanlz+SteamVR+Input+OpenVR+Runtime+SteamVR_Action+立钻哥哥+==)
  15. java分数计算_分数计算java
  16. 产品标题什么时候进行优化,提高权重,标题优化的技巧方法
  17. SpringBoot整合Mybaits开发报java.lang.IllegalArgumentException: At least one base package must be specifie
  18. 为echarts的叠加柱状图设置颜色
  19. PHP获取唯一标识UUID
  20. arm汇编总结---让汇编不再神秘

热门文章

  1. 致Oracle DBA 的一封信 (网上流传)
  2. 比较2个DataTable中的内容是否相同的方法
  3. php文章付费阅读系统球料付费阅读系统
  4. Django之BBS博客项目
  5. PHP面试中常见的字符串与文件操作题目
  6. Video Player调研
  7. M1事后分析报告--We have power to change the origin state
  8. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5)
  9. 快速搭建samba服务
  10. 关于nil和 null和NSNull的相关问题