問題タブ [isinstance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ネストされたアプリケーションで isinstance が不適切な結果を返す
ツールを開発しましたが、それを別のアプリケーションで使用したいと考えています。ここで、ツールを新しいアプリケーションにコピーするだけです。ファイルのアーキテクチャは次のとおりです。
a.py
b.py
inner.py
B.output は、2 番目の引数 a がクラス A のインスタンスであるかどうかをチェックします。inner.pyフォルダーの下で実行するinnerと、出力が得られます。
outer.pyただし、新しいアプリケーション フォルダーでほぼ同じコードを実行すると、出力が予期されません。
外側.py
print(a)outer.pyを追加すると<inner.a.a.A object at 0x7f45e179f2d0>、 ではなくが得られa.a.A objectます。
内部アプリケーションを統合しisinstanceて適切な結果を返す方法を教えてください。innerの下にあるすべてのフォルダを に追加しますsys.pathか? もしそうなら、私はタイプ検出を削除することを選択します。
python - 「decimal.Decimal(1)」が「numbers.Real」のインスタンスではないのはなぜですか?
変数が任意の型 ( int、float、Fraction、Decimalなど) の数値のインスタンスであるかどうかを確認しようとしています。
私はこの質問とその答えに出くわしました:変数が数値であるかどうかを確認するために python の isinstance() を適切に使用する方法は?
ただし、 などの複素数は除外したいと思い1jます。
クラスnumbers.Realは完璧に見えましたがFalse、Decimal数字を返します...
Fraction(1)矛盾して、たとえば、それはうまく機能します。
ドキュメントには、数値で動作するはずのいくつかの操作が記載されています。10 進数のインスタンスでエラーなしでテストしました。さらに、10 進数オブジェクトに複素数を含めることはできません。
では、なぜisinstance(Decimal(1), Real)戻るのでしょうFalseか?