是否可以(轻松地)在python中创建新类型

时间:2017-09-27 09:41:23

标签: python types

我想知道是否有一种简单的方法可以创建' custom' Python中的类型。

我创建了一个带有当前MAC地址参数的函数。我想更改它,以便它可以是IP地址或MAC地址,然后检查'类型'在函数内部进行进一步处理。

为了做到这一点,我可以检查正则表达式,但我想知道我是否可以定义两种类型,ip_add和mac_add,并在处理它之前检查我的参数类型。

我读到了一些关于定义新类型here的内容,但它根本不是直截了当的。也许存在一个特定的包?

1 个答案:

答案 0 :(得分:0)

The doc you link to in your question用于在CPython运行时(“解释器”)中为C语言扩展创建新类型。 Python有一种更简单的方法可以在Python模块中创建新类型:classes

定义一个新类很简单:

class Person(object):
    def __init__(self, firstname, lastname, dob):
        self.firstname = firstname
        self.lastname = lastname
        self.dob = dob
    def say_hello(self):
       return "Hello, my name is {self.firstname} {self.lastname} and I was born on {self.dob}".format(self=self)

p = Person("bruno", "desthuilliers", "May 1st, 1967")
p.say_hello()

据说,正如AK47正确提到的,the netaddr package似乎已经提供了你正在寻找的功能。