問題タブ [magic-function]
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.
php - 魔法の PHP 呼び出しを使用したゲッターとセッター Laravel
私は PHP マジック メソッドの経験があまりなく、Laravel フレームワークと対話する暗黙のゲッターとセッターを作成しようとしています。アクセサーとミューテーターがあることはわかっていますが、明示的に宣言する必要があります。私がしたいのは、それらを宣言するのではなく、ある種の暗黙的な関数にすることです。これがZendフレームワークで行われているのを見た、それは次のようなものでした
この機能を備えたモデルがあれば、$model->getProperty()
または$model->setProperty($property)
. しかし、Laravelにどのように適用できるかわかりません。何か案が?
model - Phalcon: 名前空間との関係をモデル化する
名前空間を使用してモデルをセットアップしようとしています。その部分は簡単です。私が苦労しているのは人間関係の部分です。
私はこれらの2つのモデルを持っています(これらは取り除かれています):
だから...そのまま、これは私に与えるでしょう:
それで、名前空間と関係があると思い始めました。だから... hasMany を次のように変更します。
「My」の前にバックスラッシュを付けても付けなくてもかまいませんが、どちらの場合でも次のようになります。
その行を次のように変更してみます。
...これはかなり冗長ですが、何でも。「メソッドが存在しません」というエラーが表示されます。
私は何が欠けていますか?
python - Python 3.4 の __init__ でオブジェクトの __call__ を定義する
次のコードを取得しました。
テストすると、次の結果が得られます。
さらに、__call__
クラス定義でメソッドを定義すると、オブジェクトは呼び出し可能ですが、オブジェクトは関数に渡したものですが、クラス__call__
が呼び出されます。__call__
__init__
さて、テストすると次のようになります。
Python 2 では、これは期待どおりに機能します (x(args)
呼び出しx.__call__(args)
)。これが Python 3.4 で機能しないのはなぜですか? そして、どうすればこれを修正できますか?
回答:なぜこれがこのように振る舞うかを確認した後、私は自分の質問に答えています ここ.
クライアントに影響を与えずにこれを修正する簡単な方法は次のとおりです。
これを使用すると、(予想どおり)次のようになります。
python - ipythonのシステムシェルコマンドでループ変数を置き換えます
(サンプル名の) リストを反復処理し、ipython のシステム シェル コマンド ("!") を使用して、サンプルごとに同じコマンドを繰り返します。以前にこれを問題なく実行しましたが、この特定のコードで SyntaxError を取得し続けます。何が間違っているか知っているなら、私に知らせてください - ありがとう!
サンプル コードは次のとおりです (実際にはさらに多くのサンプルがあります)。
samtools は $PATH にあるプログラムであり、ファイルのパスを指定してコマンドを実行すると機能することに注意してください。プログラムをインストールする必要があり、これらは大量のゲノム ファイルであるため、これは再現できません。誰かが何が間違っているのかを見つけられることを願っています!
python - ipython は "%run" を使用してファイルのサブセットを実行します
%run を使用してファイルのサブセットを実行する方法はありますか?
このようなもの:
python - インスタンスが「呼び出された」ときの戻り値
クラスで呼び出し可能な特定の関数が必要です。次のようなもの:
どの魔法の機能を使用する必要がありますか?
python - 魔法の機能 timeit
魔法の %%timeit 関数を使用して、コードの実行にかかる時間を取得しています。気になるのは、%%timeit を実行しても結果が得られないことです。たとえば、次のとおりです。
次のセルで c を使用したい場合、c が定義されていないことがわかります。
なぜこれが起こるのか、その特定のセルで魔法の %%timeit 関数が使用されているときに c が保存されないのはなぜですか?
python - Pythonクラスで新しい属性を宣言することを傍受することは可能ですか?
__setattr__
クラスインスタンスで新しい属性を作成すると、マジック関数
でインターセプトできます。self.new_attribute = "hi!"
しかし、クラス属性の作成を傍受したい場合は?
それは可能ですか?もしそうなら、どのように?メタクラス?
PS クラス内で使用することは可能ですが (内部で getframe を使用するinspect
など)、この場合、この名前へのコード ナビゲーションの可能性が失われます。DeclareAttribute("new_attribute", "hi!")