2017-09-27 4 views
-1

Pythonで「カスタム」型を作成する簡単な方法があるかどうかを知りたいと思います。Pythonで新しい型を簡単に作成することは可能ですか?

私は、現在MACアドレスであるパラメータをとる関数を作成しました。私はIPアドレスかMACアドレスのどちらかになるように変更したいのですが、それ以降の処理のために関数内の 'タイプ'をチェックしてください。

regexesで確認することができますが、ip_addとmac_addの2つのタイプを定義して、それを処理する前にパラメータの型をチェックできるかどうか疑問に思います。

私は新しいタイプhereの定義について何かを読んだが、それはまったく単純ではない。たぶん特定のパッケージが存在するのでしょうか?

+0

単純に2つのクラス「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ランタイム(「インタープリタ」)で新しいタイプを作成するためのものです。 PythonはPythonモジュールで新しい型を作成するもっと簡単な方法を持っています:classes。新しいクラスを定義する

がするのと同じくらい簡単です:AK47は当然の言及として

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() 

これは、言われ、the netaddr packageはすでにあなたが探している機能を提供しているようです。

関連する問題