1. ホーム
  2. python

[解決済み] NoneType」オブジェクトとは何ですか?

2022-03-01 05:42:09

質問

Pythonスクリプトを実行すると、このエラーが発生します。

TypeError: cannot concatenate 'str' and 'NoneType' objects

str'は文字列のことだと思いますが、'NoneType'オブジェクトが何なのかわかりません。私のスクリプトは2行目で破綻しています。1行目のコマンドは期待通りに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)

解決方法は?

NoneType の型は None を示すオブジェクトです。 値なし . None は、何も返さない関数の戻り値です。また、何かを探してそれが見つかるかどうかわからない関数のデフォルトの返り値としても一般的です。 re.search 正規表現にマッチしない場合や dict.get は、キーがディクショナリにエントリを持たない場合です。を追加することはできません。 None を文字列や他のオブジェクトに追加します。

変数の1つは None 文字列ではありません。たぶん、あなたは return を関数の中で使っているか、あるいはユーザがコマンドラインオプションを指定しなかったために optparseNone をそのオプションの値として使用します。を追加しようとすると None を文字列に追加すると、この例外が発生します。

send_command(child, SNMPGROUPCMD + group + V3PRIVCMD)

の1つです。 group または SNMPGROUPCMD または V3PRIVCMD があります。 None を値とします。