Python スクリプトを実行すると、次のエラーが発生します:
TypeError: cannot concatenate 'str' and 'NoneType' objects
'str' は文字列を意味することは確かですが、'NoneType' オブジェクトが何であるかはわかりません。スクリプトは 2 行目で失敗します。最初の行は、その行のコマンドが期待どおりに ASA 内にあるため、正常に動作していることはわかっています。最初は、send_command 内で変数とユーザー入力を使用しているためだと思いました。
'大文字' で囲まれたものはすべて変数であり、 '小文字' で囲まれたものはすべて 'parser.add_option' オプションからの入力です。
私はpexpectとoptparseを使用しています
send_command(child, SNMPGROUPCMD + group + V3PRIVCMD)
send_command(child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv)
ベストアンサー1
NoneType
のタイプですオブジェクトNone
、これは、値なし.None
は、「何も返さない」関数の戻り値です。また、何かを検索して、それが見つかるかどうかわからない関数の一般的なデフォルトの戻り値でもあります。たとえば、re.search
正規表現が一致しない場合や、dict.get
キーが辞書にエントリがない場合に返されます。文字列やその他のオブジェクトに追加することはできませんNone
。
変数の 1 つが でNone
、文字列ではありません。関数の 1 つで を忘れたかreturn
、ユーザーがコマンドライン オプションを指定せず、そのオプションの値として をoptparse
渡した可能性がありますNone
。文字列に追加しようとするとNone
、次の例外が発生します。
send_command(child, SNMPGROUPCMD + group + V3PRIVCMD)
group
またはSNMPGROUPCMD
または のいずれかが値としてV3PRIVCMD
あります。None