リスト内包表記からのクラス変数へのアクセス
Python 3 では、リスト内包表記は独自のネストされたスコープ内で動作するため、クラス定義内で定義されたクラス変数に直接アクセスできません。この動作は、このようなアクセスが可能だった Python 2 とは異なります。
エラーの例
次のコードは、Python 3 の問題を示しています。
class Foo: x = 5 y = [x for i in range(1)]
このコードでは、次のような問題が発生します。リスト内包表記ではクラス変数にアクセスできないため、x の NameError。
クラス スコープおよびList/Set/Dict 内包表記
リスト、セット、辞書内包表記、およびジェネレータ式は、クラス スコープから継承しないネストされたスコープ内で動作します。これは、そのような内包表記が関数として実装され、別のスコープで実行されるためです。
回避策
制限にもかかわらず、内包表記からクラス変数にアクセスするための回避策があります:
1 。明示的なスコープ
内包表記に必要な変数を保持するためにクラス定義内に特定のスコープを作成します:
class Foo: x = 5 def __init__(self): y = [self.x for i in range(1)]
2.インスタンス変数
コンストラクターで初期化して、代わりにインスタンス変数を使用します:
class Foo: def __init__(self): self.x = 5 self.y = [self.x for i in range(1)]
3.グローバル スコープ
可能であれば、変数とロジックをクラス定義の外に移動し、グローバル スコープを使用します:
x = 5 class Foo: y = [x for i in range(1)]
例外: 最も外側の Iterable
クラス変数に直接アクセスするとき内包表記では不可能です。最も外側の反復可能オブジェクトには例外があります。最も外側の反復可能を決定する式は、クラス変数にアクセスできます:
class Foo: x = 5 y = [i for i in range(x)]
以上がPython 3 のリスト内包表記がクラス変数に直接アクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

forhandlinglaredataSetsinpython、usenumpyArrays forbetterperformance.1)numpyarraysarememory-effictientandfasterfornumericaloperations.2)nusinnnnedarytypeconversions.3)レバレッジベクトル化は、測定済みのマネージメーシェイメージーウェイズデイタイです

inpython、listsusedynamicmemoryallocation with allocation、whilenumpyArraysalocatefixedmemory.1)listsallocatemorememorythanneededededinitivative.2)numpyArrayasallocateexactmemoryforements、rededicablebutlessflexibilityを提供します。

inpython、youcanspecthedatatypeyfelemeremodelernspant.1)usenpynernrump.1)usenpynerp.dloatp.ploatm64、フォーマーpreciscontrolatatypes。

numpyisessentialfornumericalcomputinginpythonduetoitsspeed、memory efficiency、andcomprehensivematicalfunctions.1)それは、performsoperations.2)numpyArraysaremoremory-efficientthanpythonlists.3)Itofderangeofmathematicaloperty

contiguousMemoryAllocationisucial forArraysは、ForeffienceAndfastelementAccess.1)iteenablesConstantTimeAccess、O(1)、DuetodirectAddresscalculation.2)itemprovesefficiencyByAllowingMultiblementFechesperCacheLine.3)itimplifieMememm

slicingapythonlistisdoneusingtheyntaxlist [start:stop:step] .hore'showitworks:1)startisthe indexofthefirstelementtoinclude.2)spotisthe indexofthefirmenttoeexclude.3)staptistheincrementbetbetinelements

numpyallows forvariousoperationsonarrays:1)basicarithmeticlikeaddition、減算、乗算、および分割; 2)AdvancedperationssuchasmatrixMultiplication;

Arraysinpython、特にnumpyandpandas、aresentialfordataanalysis、offeringspeedandeficiency.1)numpyarraysenable numpyarraysenable handling forlaredatasents andcomplexoperationslikemoverages.2)Pandasextendsnumpy'scapabivitieswithdataframesfortruc


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









