2017-09-27 69 views
-1

我想知道是否有一种简单的方法在Python中创建“自定义”类型。是否有可能(很容易)在python中创建新类型

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

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

我读了一些关于定义新类型的东西here,但它并不简单。也许有一个特定的软件包存在?

+0

为什么不简单地构造两个类'IPAdd'和'MACAdd'并让这些类验证内容? –

+1

查看[this](http://netaddr.readthedocs.io/en/latest/introduction.html)模块 - 为什么要重新发明轮子? – AK47

+1

不知道你为什么在这里谈论类型,类是你想要的。 –

回答

0

The doc you link to in your question用于在C代码扩展的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似乎已经可以提供你正在寻找的功能。

相关问题