2017-12-20 31 views
1

ネットワークデバイスと通信する約十数個のPythonスクリプトを作成したいと考えています。それらのほとんどは、情報を取得したり変更したりする何らかの種類のtelnet/ssh/snmpアクションを行いますそれ。perlコードをPythonに移植するための正しいアプローチ

私は通常、正常に動作するネストされたハッシュを使用し、これをPythonでネストされた辞書に書き直そうとしましたが、これはうまくいきます...しかし、クラスを使うべきかどうかは分かりません。基本的に私が必要とする最も重要なデータ構造のものがある:

  • 「ワークユニット」、 IPアドレス、ホスト名、log_file_locations、結果などのようなプロパティの数と基本的にデバイス...

  • 「の設定基本的に我々 は、SSHまたはSNMPをやって、それのために設定するものですされていると言う」と 『輸送』の辞書(ユーザーID /パスワード、 コミュニティストリング等。)

たとえば、10台のデバイスのスクリプトを実行すると、通常、その辞書のキーとしてipaddressを持つ辞書があります。

"Workunit"クラスを作成して、 "Workunit"オブジェクトの基本リストを作成することもできますが、Pythonについて読むほど、「Pythonic?それは感じます...この場合、「正しい」アプローチが何であるかについての洞察はありますか? (どちらも私は確信しています)。

答えて

1

最終的にはあなた次第です。コードをより再利用可能にしたい場合は、OOPの下で機能を実装する時間を取ってください。 12個程度のスクリプトを作成する予定があるので、それは価値があるかもしれません。あなたが記述した構造は、あなたのスクリプトがそれぞれ参照できるライブラリに作成することができます。 Pythonでカスタムデータ型と辞書を実装するという点で

、あなたはわずか数がmethods

class MyThing: 
def __init__(self,name,location,length): 
    self.name = name 
    self.location = location 
    self.length = length 

def __hash__(self): 
    return hash((self.name, self.location)) 

def __eq__(self, other): 
    return (self.name, self.location) == (other.name, other.location) 

def __ne__(self, other): 
を必要な実装する必要があります
関連する問題