プログラミング

プロおよび熱狂的プログラマーのためのQ&A

11
名前を文字列として指定してモジュールをインポートする方法は?
たとえば、コマンドとして引数を取るPythonアプリケーションを作成しています。 $ python myapp.py command1 アプリケーションを拡張可能にする、つまり、メインのアプリケーションソースを変更することなく、新しいコマンドを実装する新しいモジュールを追加できるようにしたいと考えています。ツリーは次のようになります。 myapp/ __init__.py commands/ __init__.py command1.py command2.py foo.py bar.py したがって、アプリケーションで実行時に使用可能なコマンドモジュールを見つけて適切なものを実行する必要があります。 Pythonは__import__関数を定義します。この関数はモジュール名の文字列を取ります。 __import __(name、globals = None、locals = None、fromlist =()、level = 0) 関数はモジュール名をインポートし、パッケージコンテキストで名前を解釈する方法を決定するために、指定されたグローバルとローカルを使用する可能性があります。fromlistは、名前で指定されたモジュールからインポートする必要があるオブジェクトまたはサブモジュールの名前を示します。 ソース:https : //docs.python.org/3/library/functions.html# import だから現在私は次のようなものがあります: command = sys.argv[1] try: command_module = __import__("myapp.commands.%s" % command, fromlist=["myapp.commands"]) except ImportError: # Display error message command_module.run() これは問題なく機能します。このコードで実行していることを達成するためのより慣用的な方法があるのではないかと思っています。 特に卵や拡張ポイントを使いたくありません。これはオープンソースプロジェクトではないため、「プラグイン」が存在するとは思わない。重要なのは、メインアプリケーションコードを簡略化し、新しいコマンドモジュールが追加されるたびにコードを変更する必要をなくすことです。

30
Androidデバイスからローカルホストにアクセスするにはどうすればよいですか?
Androidエミュレーターを使用してラップトップのWebサーバーにアクセスできますが、問題10.0.2.2:portno なく動作しています。 しかし、実際のAndroidフォンを接続すると、電話のブラウザがラップトップ上の同じWebサーバーに接続できません。電話機はUSBケーブルを使用してラップトップに接続されています。adb devicesコマンドを実行すると、電話が表示されます。 何が欠けていますか?
543 android 





5
奇妙なnull融合演算子のカスタムの暗黙的な変換動作
注:これはRoslynで修正されたようです 私の答えを書くときにこの質問は生まれたこの1の関連性について語る、nullで合体演算子。 念のため、null融合演算子の考え方は、フォームの式 x ?? y 最初にを評価しx、次に: の値xがnullの場合、y評価され、それが式の最終結果になります 値があればx非ヌルである、yされていない評価され、値がxのコンパイル時の型に変換した後、発現の最終的な結果であり、y必要に応じて 今、通常、変換の必要はありません、またはそれは、非NULL可能1にNULL可能タイプからだけだ-通常のタイプが同じである、または単に(と言う)からint?にint。ただし、独自の暗黙の変換演算子を作成でき、それらは必要に応じて使用されます。 の単純なケースではx ?? y、奇妙な動作は見たことがありません。しかし、(x ?? y) ?? z私はいくつかの混乱した行動を見ています。 以下は短いが完全なテストプログラムです-結果はコメントにあります: using System; public struct A { public static implicit operator B(A input) { Console.WriteLine("A to B"); return new B(); } public static implicit operator C(A input) { Console.WriteLine("A to C"); return new …

16
JSONとは何ですか?なぜそれを使用するのですか?
私はウィキペディアとGoogleで調べて公式ドキュメントを読みましたが、JSONとは何か、なぜそれを使用するのかを本当に理解するまでには至っていません。 私はしばらくの間、PHP、MySQL、Javascript / HTMLを使用してアプリケーションを構築してきましたが、JSONが私の生活をより簡単にしたり、コードを改善したり、ユーザーインターフェイスを改善したりできるとしたら、それについて知りたいと思います。誰かが私に簡潔な説明をしてもらえますか?
542 json 


18
頑固な下線をリンクから削除
下線なしでリンクを白で表示しようとしています。テキストの色は白として正しく表示されますが、青い下線が頑固に持続しています。CSSでリンクの下線を削除しようtext-decoration: none;としtext-decoration: none !important;ました。どちらもうまくいきませんでした。 .boxhead .otherPage { color: #FFFFFF; text-decoration: none; } <div class="boxhead"> <h2> <span class="thisPage">Current Page</span> <a href="myLink"><span class="otherPage">Different Page</span></a> </h2> </div> コードスニペットを実行する結果を非表示スニペットを展開 リンクから青い下線を削除するにはどうすればよいですか?
542 css  hyperlink  underline 

13
localStorage値の最大サイズはいくつですか?
以降localStorage(現在)のみの値として文字列をサポートし、オブジェクトは、それらが格納される前に文字列化(JSONストリングとして格納)する必要があることを行うために、値の長さについて定義された限界があります。 すべてのブラウザに適用される定義があるかどうか誰かが知っていますか?

14
grepを使用してフォルダー内の単語を検索するにはどうすればよいですか?
Windowsでは、フォルダー内の単語を見つけるために検索を実行しました。同様に、特定の単語が多数のサブディレクトリとファイルを含むディレクトリ内に出現するかどうかを知りたいです。grep構文を検索したところ、ファイル名を指定する必要があることがわかりましたgrep string filename。 さて、ファイル名がわかりません。どうすればよいですか。友人から提案されましたがgrep -nr string、これが何を意味するのかわからず、結果も得られませんでした(を発行するまで応答がありませんctrl + c)。

14
Gradleを使用して依存関係ツリーを検索する
Gradleを使用して、何に依存するかというツリーを作成することは可能ですか? 私にはプロジェクトがあり、すべての依存関係を見つけたいので、前方宣言などで少し整理できるようにしたいと思います。
542 gradle 

19
複数のnpmスクリプトを並行して実行するにはどうすればよいですか?
私package.jsonには次の2つのスクリプトがあります。 "scripts": { "start-watch": "nodemon run-babel index.js", "wp-server": "webpack-dev-server", } Node.jsでの開発を開始するたびに、これら2つのスクリプトを並行して実行する必要があります。最初に考えたのは、次のような3番目のスクリプトを追加することでした。 "dev": "npm run start-watch && npm run wp-server" ...しかし、start-watch実行する前に終了するのを待ちwp-serverます。 これらを並行して実行するにはどうすればよいですか?outputこれらのコマンドを確認する必要があることを覚えておいてください。また、ソリューションにビルドツールが含まれている場合は、別のプロジェクトですでに使用しているため、gulp代わりに使用したいと思いgruntます。

6
Gitリポジトリのリモートのリスト?
Gitリポジトリがあります。このリポジトリには複数のリモートリポジトリがあります(私はそう思います)。上記のリポジトリに属する​​リモートリポジトリのリストを取得するにはどうすればよいですか? 同様git list --remotesまたはそのような何か?
542 git 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.