問題タブ [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
か?