Python语言提供了多种创建对象的方式,这里列出其中方式,比如下面有一个类:

class Bar:def __init__(self,x):print(x)self.x=x

方式一:

传统方式构建,将类对象当成构造器使用

b1=Bar(4)

方式二:

把类名当成参数,使用eval()函数

b2=eval("Bar(1)")

方式三:

使用getattr函数

import sys
b3=getattr(sys.modules[__name__],"Bar")(3)

方式四:

使用globals函数

b4=globals()["Bar"](5)

方式五:

使用自定义函数创建对象

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def make_object(cls,*args,**kwargs):return cls(*args,**kwargs)b5=make_object(Bar,10)

方式六:

原型方式创建

b6=copy.deepcopy(b5)
b6.x=9

方式七:

使用__class__创建,使用新参数创建对象

b7=b1.__class__(11) #__class__查看对象所在的类b1.__class_查看b1的类就是Bar

【Python教程】七种创建对象的方式,你知道几种?相关推荐

  1. 【python教程入门学习】Python函数定义及传参方式详解(4种)

    这篇文章主要介绍了Python函数定义及传参方式详解(4种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一.函数初识 1.定 ...

  2. java中几种创建对象的方式

    java中几种创建对象的方式 在java程序中,对象可以被显式地或者隐式地创建. 下面说说四种显式的创建对象的方式:     ●  用new语句创建对象     ●  运用反射手段,调用java.la ...

  3. 012-Java有几种文件拷贝方式?哪一种最高效?

    我在专栏上一讲提到,NIO 不止是多路复用,NIO 2 也不只是异步 IO,今天我们来看看 Java IO 体系中,其他不可忽略的部分. 今天我要问你的问题是,Java 有几种文件拷贝方式?哪一种最高 ...

  4. Java有几种文件拷贝方式?哪一种最高效?

    第12讲 | Java有几种文件拷贝方式?哪一种最高效? 我在专栏上一讲提到,NIO 不止是多路复用,NIO 2 也不只是异步 IO,今天我们来看看 Java IO 体系中,其他不可忽略的部分. 今天 ...

  5. LVS:三种负载均衡方式比较+另三种负载均衡方式

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  6. python教程七牛云_通过Python来使用七牛云存储的方法详解

    本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作. 安装 首先,要使用Python的SDK必须要先安装.七牛的Python SDK是开源的,托管在Githu ...

  7. python输入的方式有几种_Python输入方式具体的三种实现方式

    Python输入方式一个很多人都关心的问题,其实在实际中最实用的有三种输入方式.下面我们就来看看Python输入方式的具体办法.希望大家有所收获,只有这样才能更好的进行推广. 1.文件方式 将复制的代 ...

  8. python教程七牛云_使用Python实现数据从七牛云到阿里云的自动化迁移

    工具python3.5 顺手的IDE(轻量级推荐vscode) qiniu/qshell (本文是基于 mac 系统开发,所以使用 qshell 的 mac 版本,读者请根据自己的系统下载,也可以直接 ...

  9. java在创建对象时必须_Java中5种创建对象的方式

    以下是一些在Java中创建对象的方法: 1. 使用new关键字 使用new关键字是创建对象的最基本方法.这是在java中创建对象的最常见方法.几乎99%的对象都是这样创建的.通过使用这个方法,我们可以 ...

最新文章

  1. Java项目:平行志愿管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
  2. 一个阿里P7的自白:一念之差,我差点转了产品
  3. HDU4587(割点+最大连通分量)
  4. ural(Timus) 1463. Happiness to People!
  5. GitHub 中文排行榜,高分优秀中文项目一网打尽!
  6. 机器学习 量子_量子机器学习:神经网络学习
  7. Mysql 数据库字符集转换及版本升级/降级的详细教程
  8. Unity3D动画面板编辑器状态属性对照表
  9. 恶意软件针对中国用户 试图攫取用户账户和密码
  10. Element UI el-table 表格多选的使用
  11. Docker核心技术与实现原理
  12. Excel 点击单元格打钩,再点击取消
  13. 无线WIFI网速慢的原因及解决方法
  14. 那年我们也曾高三——纪录片《高三》真实记录高三生活
  15. 用友系统中连接数据库服务器失败,用友u8服务器连接不到本地数据库
  16. 计算机内存容量影响游戏的吗,内存容量对整机游戏性能影响到底有多大
  17. 为什么百兆网卡只能传输速度只能为10M/s
  18. c语言二维数组输入数据,c语言编写程序,把下面的数据输入到一个二维数组中:...
  19. 转载:解决采集UTF-8网页空格变成问号乱码
  20. Linux ls -l 名:命令详解

热门文章

  1. NSOperation的使用细节 [1]
  2. CentOS(5.8/6.4)linux生产环境若干优化实战------就爱运维
  3. 检测某个IP是否属于某个网段范围
  4. IOS的消息传递机制,使用NSNotificationCenter进行通信,很实用
  5. Delphi编写事件模型客户端(2)
  6. e3 1231 v3 达芬奇_黑苹果E3-1231-V3 + Z97-HD3+GTX960安装High Sierra10.13.6
  7. 【ABAP】Smartforms无法打印特殊字符问题处理方案
  8. 【PM模块】维护业务处理流程—内部维护(通知单)
  9. php7-sapnwrfc
  10. Field XXXX input value is longer than screen field-BDC