2017-09-27 84 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似乎已經可以提供你正在尋找的功能。

相關問題