問題タブ [globals]
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 - ファイル間でグローバル変数を使用していますか?
グローバル変数がどのように機能するかについて少し混乱しています。約 50 個のファイルを含む大規模なプロジェクトがあり、それらすべてのファイルに対してグローバル変数を定義する必要があります。
私がしたことは、main.py
次のようにプロジェクトファイルでそれらを定義することでした:
次のようmyList
に、で使用しようとしていますsubfile.py
別の方法を試しましたが、うまくいきませんでした
そして、subfile.py
私はこれを持っていました:
しかし、やはりうまくいきませんでした。これをどのように実装すればよいですか?2つのファイルが本当にお互いを知らない場合(サブファイルがメインを知らない場合)、そのように機能しないことは理解していますが、io書き込みまたはピクルを使用せずにそれを行う方法を考えることができませんやりたくない。
python - モジュール間でリソースを共有することをお勧めしますか?
コードを再編成しているため、新しい名前空間を作成しています。モジュールの「静的」クラス (各メソッドに @staticmethod を含むクラス) を変更しています。これが進むべき道ですよね?
問題は、これらのモジュール間でリソースを共有する方法に疑問があることです。
データベースへのすべての接続を行うモジュールがあり、もちろんすべてのクラス/メソッドがDBカーソルを格納する変数を共有していたとしましょう(私はSQLiteを使用しています)。現在、異なるモジュールでは、カーソルも共有する必要があります。
だから、私の考え:
各モジュールでグローバル変数を宣言します。しかし、グローバルは悪であり、子供を食べ、私たちの仕事を奪います。ですから、この方法でよいかどうかはわかりません。
/li>元の database_cursor を使用して「親」database_module をインポートし、次のように使用します。
/li>
この場合、この 2 番目は問題ないように見えますが、多くの場合、再帰的なインポートにつながると思います。これは避けるべきだと思います。
custom-component - flexglobals.toplevelapplication の反対を探す
カスタム コンポーネントからトップ レベル アプリケーションの textInput (たとえば) を参照したい場合。FlexGlobals.toplevelapplication を使用できますが、最上位アプリケーションからカスタム コンポーネントで textInput を参照するにはどうすればよいですか。したがって、FlexGlobals.toplevelapplication とは反対のものが必要です。
javascript - JavaScript グローバル デザイン パターン
重複の可能性: JavaScript でグローバル変数を回避するには?
JavaScript でグローバル変数を管理する最善の方法についてアドバイスを求めています。
次の点を考慮してください。
どちらの場合も、私たちの関数は内部的にグローバル変数にアクセスしていますが、これは私には醜く感じられます。私が読んだことによると、グローバル名前空間が詰まるのを避けるために、可能な限りグローバルを避けたいと考えています。
では、グローバルの構造を作成するだけで十分でしょうか?
例えば、
これでグローバル名前空間の競合の問題は解決すると思いますが、メソッド内からグローバル スコープにアクセスしています。
私は何をすべきか?
c# - C# ライブラリでグローバル オブジェクトを作成する方法
重複の可能性:
データ (実行時に変更される可能性がある) にアプリケーション全体がアクセスできるようにする最善の方法は?
C# ライブラリがあります。
- ライブラリにグローバル オブジェクト/変数を含めることはできますか?
- これらのオブジェクトの初期化メソッドは、メイン プロジェクトの実行時にライブラリから自動的に実行できますか?それとも静的メソッドにしてメイン プロジェクトから実行する必要がありますか?
lua - Luaの_G(グロアルスペース)に関数をプッシュする方法
TLDR; 私の関数は_Gスコープから呼び出すことができないので、文字列のリストを解析して関数を呼び出すことができるようにしたいのです。package.seeall
これは、フレームワークで要求されることによって悪化する可能性があります。
私は、OpenWRTルーターのUCIフロントエンドであるluciフレームワークで作業しています。特定のUCI値が解析されるときに呼び出されるカスタマイズされた関数を作成するために、_Gを介して呼び出される戻り値の名前を共有する関数を作成しました。
解析されたデータは次のようになります。
私のコードは次のようになります。
私に返されるエラーは、私が直接それを渡すとき、私が受け取るattempt to call field '?' (a nil value)
文字列「value」
は、ダミー変数を作成するときです。pageValues.modules['value']=_G['value']()
attempt to call field 'value' (a nil value)
受け取りattempt to call field '?' (a nil value)
ます。これは私が使用する場合も同じですlocal dummy = 'value'
_G
関数が含まれているかどうかを解析して確認すると、含まれていないことがわかります。注Luciは自動的にを呼び出しますがpackage.seeall
、それが私のグローバルを混乱させているのかどうかはわかりません。しかし、この質問に答える上で重要かもしれません。
私の最も緊急の必要性は、この関数を正しく実行することです。私の二次的な関心は、将来LuCIでサンドボクシングの問題をトラブルシューティングできるようにLuaの範囲をどのように決定できるかということです。
python - Python グローバル リスト
Python を学習していますが、グローバル変数/リストに問題があります。私はハノイ プログラムの基本的なマニュアル タワーを書いています。現在のプログラムは次のとおりです。
いくつかのバリエーションを試しましたが、毎回「NameError: グローバル名 'pillar1' が定義されていません」というエラーが表示されます。
この設定でグローバル リストを処理する最良の方法は何ですか? 可能であれば、1 つのソース ファイルのみを使用することをお勧めします。ありがとう!
php - PHP $_GLOBALS -> 値を取得しますか?
起動時に次のようなことを行うコードがあるとします。
これは明らかにgetAndWriteToGlobals
機能し、いくつかのことを行い、別のデータを入れますが、$_GLOBALS['something'][$ee] = $value ->
正しく機能し (全体を印刷しました$_GLOBALS['something']
) print_r
、すべてがそこにあります。
私が抱えている問題は、プログラムがこの関数から戻ってきて、このような別の変数で配列を取得しようとしたときです
この場合、$var は printup に何も含まれず (null でさえも)、 をcount($var)
返します0
。ここで何が欠けていますか?
ありがとう!
編集:
php - HTTP グローバル PHP 変数
get、post、cookie などの HTTP 要求データを含むグローバル配列への参照を取得する方法はありますか? 例えば:
getRequestReference() は &$_GET、&$_POST を返します...ユーザーがスクリプトでデータを送信するために使用した要求のタイプに応じて。
php - PHP で未定義のグローバルをキャッチし、autoload のように変数に対して値を提供する方法はありますか?
クラスのインスタンスを作成したり、そのクラスで静的関数を使用したりするのではなく、そのクラスのグローバル シングルトンでメソッドを呼び出す既存のコードが多数あります。
例 (stringclass.php):
次に、これを次のように使用します。
これは関数を呼び出すあまり賢明な方法ではないことはわかっていますが、これらのシングルトンを使用するすべてのコードを変更することなく、オートローダーを使用して適切なクラスを含めるのを忘れているすべての場所を修正できるかどうか疑問に思っていました. . 宣言されていないグローバルの使用を検出し、参照されていたグローバルの名前に基づいて正しいクラス ファイルをインクルードします。