如何定义一个新的type()

时间:2019-05-09 19:37:33

标签: python python-3.x

class Something:

    def __init__(self, x, y=0):

        self.x = x
        self.y = y

x是一个字符串,y是一个货币数字。如何定义新的类型,例如

type(self.y) == Currency

2 个答案:

答案 0 :(得分:2)

像这样定义Currency类:

class Currency(object):
     def __init__(self, value):
             self.value = value

然后您可以像这样创建Currency类型的新变量:

y = Currency(3)

答案 1 :(得分:2)

对于简单类(没有逻辑,只有数据),您也可以使用dataclasses。这在python 3.7中可用

from dataclasses import dataclass

@dataclass
class Currency:
     value: int

对于较早的版本,您可以使用namedtuple

from collections import namedtuple

Currency = namedtuple('Currency', ['value'])