对Python中9种生成新对象的方法总结

先定义一个类:

class Point:
 def __init__(self, x, y):
  self.x = x
  self.y = y 

下面我们使用9种方法来生成新的对象:

point1 = Point(1, 2)
point2 = eval("{}({}, {})".format("Point", 1, 2))
point3 = globals()["Point"](1, 2)
point4 = locals()["Point"](1, 2)
point5 = getattr(sys.modules[__name__], "Point")(1, 2)
point6 = copy.deepcopy(point1)
point7 = point1.__class__(1, 2)
point8 = type('Point', (Point, ), {})(1, 2)
point9 = types.new_class('Point', (Point, ), {})(1, 2)

PS: 需要导入sys和types模块

以上这篇对Python中9种生成新对象的方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 在python的类中动态添加属性与生成对象

    本文将通过一下几个方面来一一进行解决 1.程序的主要功能 2.实现过程 3.类的定义 4.用生成器generator动态更新每个对象并返回对象 5.使用strip 去除不必要的字符 6.rematch匹配字符串 7.使用timestrptime提取字符串转化为时间对象 8.完整代码 程序的主要功能 现在有个存储用户信息的像表格一样的文档:第一行是属性,各个属性用逗号(,)分隔,从第二行开始每行是各个属性对应的值,每行代表一个用户.如何实现读入这个文档,每行输出一个用户对象呢? 另外还有4个小要求

  • 对Python中9种生成新对象的方法总结

    先定义一个类: class Point: def __init__(self, x, y): self.x = x self.y = y 下面我们使用9种方法来生成新的对象: point1 = Point(1, 2) point2 = eval("{}({}, {})".format("Point", 1, 2)) point3 = globals()["Point"](1, 2) point4 = locals()["Point&qu

  • Python中五种实现字符串反转的方法

    目录 前言 方法1 方法2 方法3 方法4 方法5 前言 一道题目是实现一个反转字符串的函数,具体如下: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. 我们可以假设数组中的所有字符都是 ASCII 码表中的可打印字符. 示例 1: 输入:["h","e","l","l","

  • Python中三种时间格式转换的方法

    目录 一 时间元组 二 字符串与时间戳 三 时间的加减用法 一 时间元组 1. 时间元组和时间戳的互化 import time,datetime # 获取当前时间的时间元组 t = time.localtime() print(t) # 时间元组转时间戳 timestamp = time.mktime(t) print(timestamp) # time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=15,

  • python中3种等待元素出现的方法总结

    目录 前言 一.强制等待 二.隐性等待 三.显性等待 总结 前言 在做web或app的自动化测试经过会出现找不到元素而报错的情况,很多时候是因为元素 还没有被加载出来,查找的代码就已经被执行了,自然就找不到元素了.那么我可以用等待 元素加载完成后再执行查找元素的code. Python里有三种等待的方式: 一.强制等待 Sleep(54) 这个方法在time模块,使用时通过from time import sleep导入 比如: Sleep(10) #表示强行等待10s再执行下一句代码 Driv

  • Python中11种NumPy高级操作总结

    目录 1.数组上的迭代 2.数组形状修改函数 1.ndarray.reshape 2.ndarray.flat 3.ndarray.flatten 3.数组翻转操作函数 1.numpy.transpose 2. numpy.ndarray.T 3.numpy.swapaxes 4.numpy.rollaxis 4.数组修改维度函数 1.numpy.broadcast_to 2.numpy.expand_dims 3.numpy.squeeze 5.数组的连接操作 1.numpy.stack 2.

  • python中三种高阶函数(map,reduce,filter)详解

    map(function,seq[,seq2]) 接收至少两个参数,基本作用为将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列 返回一个可迭代的map对象 function:函数对象 py2中可为None,作用等同于zip() 如: py3中不可为None,None是不可调用.不可迭代对象 seq:可迭代对象,可以传一个或多个 # 传一个: def func(i):return i*2 print([i for i in map(func,[1,'2'])]) # [2,'22']

  • 详解Python中四种关系图数据可视化的效果对比

    python关系图的可视化主要就是用来分析一堆数据中,每一条数据的节点之间的连接关系从而更好的分析出人物或其他场景中存在的关联关系. 这里使用的是networkx的python非标准库来测试效果展示,通过模拟出一组DataFrame数据实现四种关系图可视化. 其余还包含了pandas的数据分析模块以及matplotlib的画图模块. 若是没有安装这三个相关的非标准库使用pip的方式安装一下即可. pip install pandas -i https://pypi.tuna.tsinghua.e

  • Python中几种导入模块的方式总结

    模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入.常见的方式有如下几种: 1 . import >>> import sys >>> sys.path ['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\s

  • Python 中几种字符串格式化方法及其比较

    Python 中几种字符串格式化方法及其比较 起步 在 Python 中,提供了很多种字符串格式化的方式,分别是 %-formatting.str.format 和 f-string .本文将比较这几种格式化方法. %- 格式化 这种格式化方式来自于 C 语言风格的 sprintf 形式: name = "weapon" "Hello, %s." % name C 语言的给实话风格深入人心,通过 % 进行占位. 为什么 %-formatting不好 不好的地方在于,

  • 浅谈python中str字符串和unicode对象字符串的拼接问题

    str字符串 s = '中文' # s: <type 'str'> s是个str对象,中文字符串.存储方式是字节码.字节码是怎么存的: 如果这行代码在python解释器中输入&运行,那么s的格式就是解释器的编码格式: 如果这行代码是在源码文件中写入.保存然后执行,那么解释器载入代码时就将s初始化为文件指定编码(比如py文件开头那行的utf-8): unicode对象字符串 unicode是一种编码标准,具体的实现可能是utf-8,utf-16,gbk等等,这就是中文字符串和unicod

随机推荐