精华内容
下载资源
问答
  • Python类创建一个自定义数据类型

    万次阅读 2019-01-01 15:36:29
    创建一个新的拥有一些额外功能的实例属性类型,比如类型检查。 # Descriptor attribute for an integer type-checked attribute class String(object): def __init__(self, name): self.name = name def __get__...

    创建一个新的拥有一些额外功能的实例属性类型,比如类型检查。

    # Descriptor attribute for an integer type-checked attribute
    class String(object):
        def __init__(self, name):
            self.name = name
    
        def __get__(self, instance, cls):
            if instance is None:
                return self
            else:
                return instance.__dict__[self.name]
    
        def __set__(self, instance, value):
            if not isinstance(value, str):
                raise TypeError('Expected an str')
            instance.__dict__[self.name] = value
    
        def __delete__(self, instance):
            del instance.__dict__[self.name]
    
    
    class Point:
        name1 = String('name1')
        name2 = String('name2')
    
        def __init__(self, name1, name2):
            self.name1 = name1
            self.name2 = name2
    
    
    if __name__ == "__main__":
        p = Point("bo", "yun")
        print(p.name1)
        print(p.name2)
    
    

    一个描述器就是一个实现了三个核心的属性访问操作(get, set, delete)的类, 分别为 _get_() 、_set_() 和 _delete_() 这三个特殊的方法。 这些方法接受一个实例作为输入,之后相应的操作实例底层的字典。

    作为输入,描述器的每一个方法会接受一个操作实例。 为了实现请求操作,会相应的操作实例底层的字典(__dict__属性)。 描述器的 self.name 属性存储了在实例字典中被实际使用到的key。

    描述器的一个比较困惑的地方是它只能在类级别被定义,而不能为每个实例单独定义。

    #例如
    class Point:
        def __init__(self, x, y):
            self.x = String('name1') # No! Must be a class variable
            self.y = String('name2')
            self.x = x
            self.y = y
    
    展开全文
  • python numpy 自定义数据类型

    千次阅读 2018-02-13 15:13:07
    在某些场景下,可能会用到numpy的自定义数据类型,比如需要将电子表格或者数据库的一行数据作为一个数据。 举例说明,我们创建一个存储商店库存信息的数据类型。其中,我们用一个长度为40个字符的字符串来记录商品...

    在某些场景下,可能会用到numpy的自定义数据类型,比如需要将电子表格或者数据库的一行数据作为一个数据。

    举例说明,我们创建一个存储商店库存信息的数据类型。其中,我们用一个长度为40个字符的字符串来记录商品名称,用一个32位的整数来记录商品的库存数量,最后用一个32位的单精度浮点数来记录商品价格。

    以下将会用到numpy包,所以先import

    >>> import numpy as np

    创建数据类型

    >>> t = np.dtype([('name',np.str_,40),('numitems',np.int32),('price',np.float32)])
    >>> t
    dtype([('name', '<U40'), ('numitems', '<i4'), ('price', '<f4')])

    上面显示出的类型如 “< U40” 表示的是字符编码,下面列出字符编码的对应表。

    解析:< U40

    • < :表示字符序,即位长为40的字储存的顺序,包括大端序(big-endian)和小端序(little-endian)。大端序是将最高位字节存储在最低的内存地址处,用>表示;与之相反,小端序是将最低位字节存储在最低的内存地址处,用<表示。
    • U: 字符编码
    • 40: 用40位存储字。

    查看类型

    >>> t['name']
    dtype('<U40')

    使用自定义的类型创建数组

    >>> items = np.array([('Meaning of life DVD', 42, 3.14),('Butter', 13, 2.72)], dtype=t)
    >>> items
    array([('Meaning of life DVD', 42,  3.1400001 ),
           ('Butter', 13,  2.72000003)],
          dtype=[('name', '<U40'), ('numitems', '<i4'), ('price', '<f4')])
    >>> items[1]
    ('Butter', 13,  2.72000003)

    在用array函数创建数组时,如果没有在参数中指定数据类型,将默认为浮点数类型,所以这里必须制定dtype参数。

    展开全文
  • Python创建自定义数据类型并访问,需要在定义类的时候对一些魔法方法逐一实现。 repr(obj)函数:此法给python解释器运行。 str(obj)函数:此法给人阅读。 说明: 1、str(obj)函数先查找obj.str()方法,若有此方法,...

    Python创建自定义数据类型并访问,需要在定义类的时候对一些魔法方法逐一实现。

    repr(obj)函数:此法给python解释器运行。

    str(obj)函数:此法给人阅读。

    说明:
    1、str(obj)函数先查找obj.str()方法,若有此方法,则调用并返回结果;
    2、若没有obj.str()方法,则再查找obj.repr()方法,若有此方法,则调用并返回结果;
    3、若obj.__repr__方法也不存在,则调用object类的__repr__实例方法,返回<main.XXXX object at 0xAABBCCDD>格式的字符串,此为内存地址

    # 打印显示类
    class Display(object):
        def show(self):
            return ", ".join("{}".format(getattr(self, key)) for key in self.__dict__)
        
        # 重写__str__定义对象的打印内容,否则只显示内存地址
        def __str__(self):
            return "{}".format(self.show())
    
    # 如:创建自定义字典类,需继承Display类,否则print时只会显示内存地址
    class DictDemo(Display):
        # 创建字典
        def __init__(self, key, value):
            self.dict = {}                  
            self.dict[key] = value
        
        # 通过__getitem__使用mytree[3]获取值的方式,否则不能使用mytree[3]方法获取值
        def __getitem__(self, key):
            return self.dict[key]
        
        # 通过__setitem__使用mytree[3]="red"方式,否则不能使用mytree[3]="red"方法
        def __setitem__(self, key, value):
            self.dict[key] = value
    
        # 通过__delitem__调用del方法,否则不能使用del方法
        def __delitem__(self, key):
        	del self.dict[key]
    
        # 通过__len__调用len()方法,否则不能使用len()方法
        def __len__(self):
            return len(self.dict)
    
        # 通过__contains__调用in方法,若一个集合类型没有实现__contains__方法,那么in运算符就会按顺序做一次迭代搜索。
        def __contains__(self, key):
            return key in self.dict
    
    dictDemo = DictDemo('key0','value0')    #方法一创建字典
    print(dictDemo['key0'])         		#结果为value0,dictDemo["key0"]会自动调用类中的__getitem__方法
    dictDemo['key1'] = 'value1'	    		#自动调用类中的__setitem__方法
    print(dictDemo['key1'])         		#结果为value1
    print(len(dictDemo))            		#结果为2,自动调用类中的__len__方法
    print(dictDemo)                 		#删除前
    del dictDemo['key0']            		#自动调用类中的__delitem__方法
    dictDemo['key2'] = 'value2'     		#自动调用类中的__setitem__方法
    print(dictDemo)                 		#删除后
    
    dictDemo1 = {"key0":"value0"}   		#方法二创建字典
    print(dictDemo1["key0"])        		#结果为value0
    
    # 通过__contains__调用in方法,若一个集合类型没有实现__contains__方法,那么in运算符就会按顺序做一次迭代搜索。
    if 'key0' in dictDemo1:
        print('in')
    

    结果为:

    value0
    value1
    2
    {'key0': 'value0', 'key1': 'value1'}
    {'key1': 'value1', 'key2': 'value2'}
    value0
    in
    
    展开全文
  • python 自定义文件类型

    2019-11-13 13:38:11
    一直在找python 自定义文件类型,用来保存敏感数据,现在终于找到一个比较满意的了。 直接上代码 import pickle li = ["nihao","haloo",{"sdf":123}] with open("test.xxx","wb") as fb: pickle.dump(li,fb) ...

    一直在找python 自定义文件类型,用来保存敏感数据,现在终于找到一个比较满意的了。
    直接上代码

    import  pickle
    
    li = ["nihao","haloo",{"sdf":123}]
    
    with open("test.xxx","wb") as fb:
        pickle.dump(li,fb)
    
    with open("test.xxx","rb") as fb:
        ss=pickle.load(fb)
        print(type(ss),ss,type(ss[2]["sdf"]))
    

    生成 文件test.xxx
    查询结果是

    <class 'list'> ['nihao', 'haloo', {'sdf': 123}] <class 'int'>
    
    展开全文
  • 数据类型定义: &gt;&gt;&gt; dt = np.dtype('&gt;i4') 定义一个big-endian int 4*8=32位的数据类型 &gt;&gt;&gt; dt dtype('&gt;i4') &gt;&gt;&gt; dt.byteorder /...
  • 那么我们编写一个模块也可以为使用此模块者划定红线,来约束使用者可用哪些数据,这就需要自定义异常类型。 首先需要了的是自定义类是的父类: python说明文档中是这样说 exception Exception: 所有内置的非系统...
  • 对于try…except…else…finally def self_error(type_list): """异常处理函数 传入一个可迭代对象,处理参数...ZeroDivisionError 除(或取模)零 (所有数据类型) 参考链接:https://www.jianshu.com/p/e7e123d481f1
  • 您可能感兴趣的文章:Python isinstance判断对象类型深入浅析Python获取对象信息的函数type()、isinstance()、dir()Python中请使用isinstance()判断变量类型python数据类型判断type与isinstance的区别实例解析Python
  • 日常开发中,当系统提供的异常类型不能满足开发的需求时,就需要自己创建一个新的异常类来拥有自己的异常。 自定义异常类继承自 Exception 类,可以直接继承,或者间接继承。
  • 2、布尔类型(Boolean)在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了__nonzero__()或__len__()方法且方法返回0或False,则其实例也...
  • python自定义类型转json

    千次阅读 2016-04-27 11:37:25
    json模块不仅可以处理普通的python内置类型,也可以处理我们自定义数据类型,而往往处理自定义的对象是很常用的。 首先,我们定义一个类Person。 class Person(object): def __init__(self,name,age): self.name...
  • Python数据结构

    千次阅读 2017-10-23 15:18:53
     Python中的数据结构有非常多的类型,其中,Python中系统自己定义好的,不需要我们自己去定义的数据结构叫做Python的内置数据结构,比如列表、元组等,而有些数据组织方式,Python系统里面没有直接定义,需要我们...
  • 案例二: 自定义实现集合, 模拟Python内置集合类型(set),实现元素添加、删除以及并集、交集、对称差集等基本运算 无序,不可重复 2. 可集合运算 3. 元素是可哈希 案例三: 自定义栈,实现基本的入栈、出栈操作 后进先...
  • 本文实例讲述了Python自定义函数的5种常见形式。分享给大家供大家参考,具体如下: ...—–形参列表是标准的tuple数据类型 >>> def abvedu_add(x,y): print( x + y) >>> abvedu_add(3,6) 9 >>> 2、
  • Goose Types 是一个 Python 库,用于支持自定义类型检查方法的数据类型。 Goose 类型是具有自定义方法的类,这些方法定义了和检查自身的行为,以及一些相关的注释和错误处理。 换句话说,goose 类型是 Python 的的...
  • Python自定义值的枚举类

    千次阅读 2018-03-31 23:38:37
    Python自定义值的枚举类
  • Python自定义列表类

    千次阅读 2019-04-17 08:38:26
    每个节点包括两部分:一个是存储数据元素的数据域(Data field),另一个是存储下一个节点地址的指针域(Pointer field)。 下面这些方法的实现性能与Python的内置列表list不同,Python中的列表的实现是基于数组的。 ...
  • java中jython操作把python数据类型转成java类型 例如list->List dict->Map set->Set 以及一些基本操作的包装整合
  • MIME数据由一个数据类型和一个子类型构成–例如,text/plain,text/html,image/png,要处理自定义MIME数据,就必须要选用一种自定义数据类型和一种子类型,然后将数据封装到QMimeData对象中。本例子中,我们创建端...
  • Python数据类型

    千次阅读 2018-08-26 18:45:15
    目录 数字(numbers) 字符串(str) ...字符串是Python 中最常用的数据类型。双引号或者单引号中的数据,就是字符串。 2、下标和切片 下标: 所谓“下标”就是编号,就好比超市中的存储柜的编号...
  • 一.基本概念 (1)表达式 例如: 8*9 1+1 类似于计算公式。 (2)语句 例如: print() input()。 ...例如: 就像学车,它是一套...二.Python语言的基础组成 1.关键字 'False', 'None', 'True', 'and', 'as', 'assert', 'async',
  • Python自定义函数需要注意的问题

    千次阅读 2019-08-21 14:32:13
    Python自定义函数需要注意的问题: 1.缩进。一个语句块要用相同的缩进,两个缩进相同的逻辑行可以看做可以并列的关系,不可能是所属关系。 return需要跟for对齐,否则 2.遍历。range(n) 代表的是从0开始,遍历到...
  • 背景:Python 自定义函数是 PyFlink Table API 中最重要的功能之一,其允许用户在 PyFlink Table API 中使用 Python 语言开发的自定义函数,极大...
  • 数据类型的转换相关说明源码 相关说明 源码 ''' # coding=utf-8 # 问题: 假设一位收购商去农田里收麦子,每个田里收的斤数不一样, 最后将麦子的总斤数除去小数后面的数,进行抹零处理。 第一块田:48.8斤 第二块...
  • 先上网卡数据采集脚本,这个基本上是最大的坑,因为一些数据类型不正确会导致no datapoint的错误,真是令人抓狂,注意其中几个key的值必须是int或者float类型,如果你不慎写成了string,那就麻烦了,其他的tag是...
  • Python 中的数据皆是对象,比如被熟知的 int 整型对象、float 双精度浮点型、bool 逻辑对象,它们都是单个元素。 2、容器型 可容纳多个元素的容器对象,常用的比如:list 列表对象、 tuple 元组对象、dict 字典对象...
  • python——自定义函数

    万次阅读 2019-04-17 11:35:46
    一、概述 在编写脚本的过程中,对于要重复完成的工作,我们可以提取...二、自定义函数 2.1 函数声明、调用 在python中使用def可以声明一个函数。完整的函数是由函数名、参数以及函数实现语句组成的,在函数...
  • python-自定义函数判断输入数字类型

    千次阅读 2019-08-25 17:10:14
    def my_gettype(x): try: x = int(x) print('输入的是整数:%d'%x) return x except: print('不是整数') try: x = float(x) print('输入的是浮点数:%f'%x) ...
  • Python自定义栈类

    千次阅读 2019-04-17 09:05:07
    栈(stack):又称为堆栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端top)进行加入数据(push)和移除数据(pop)的运算。按照后进先出(LIFO, Last In First Out)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 137,378
精华内容 54,951
关键字:

python自定义数据类型

python 订阅