rinkun の回答履歴
- Pythonでcall_user_funcを行う
お世話になります。 最近Pythonの勉強を始めた初心者です。 GAE/Python2.5で、PHPで言うcall_user_funcを使う方法を探しております。 具体的に言いますと、関数名(メソッド名)を変数に入れて、それを呼び出す方法を探しています。 例えばPHPで言えば下記のようなコードです。 ---------------------- <?php // 呼び出すクラス class CTestClass { // 呼び出すメソッド function TestFunc() { echo 'Call <CTestClass::TestFunc()>'; } } // 変数にメソッド名を入れて呼び出す $func = 'TestFunc'; $obj = new CTestClass(); call_user_func( array( $obj, $func ) ); // print Call <CTestClass::TestFunc()> ---------------------- Pythonでは上記のような事は可能でしょうか? また、メソッドを呼び出すのと普通のグローバル関数を呼び出すのでやり方が違う場合はそちらも教えて頂けるとあり難いです。 以上、よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- sasaki1985
- 回答数1
- mallocで確保するメモリの領域を限定する方法
mallocで確保するメモリの領域を限定する方法というものは存在するのでしょうか? 例えば、 mallocを使ってメモリを確保するときに、 アドレス:0x00001000から0x00002000の間でメモリを確保してください。 といった感じです。 宜しくお願いいたします。
- オブジェクトの参照を返す関数の扱い
オブジェクトの作成と関数との関係を勉強していますが参照の使い方に関して質問させていただきたいと思います。 以下のような簡単なプログラムを作りました。 myclass.cpp myclass.h で記述されたクラスmyclassは整数を一つ持ち、show_value関数でその整数を表示し、say_heyで"hey"という文字を出力するというものです。 このクラスを利用するプログラムとしてmain.cppをつくりました。このなかには2つの関数が使われます。 -オブジェクトをつくりそれをオブジェクトとして返す関数(return_obj) -オブジェクトをつくりそれの参照を返す関数(return_ref_obj) これらの関数を用いてオブジェクトをつくり、そのオブジェクトを戻り値としてmainのなかでオブジェクトのshow_value関数で保持する整数を表示する、というものです。 myclass.h-------------------------------- class Myclass{ public: int my_int; Myclass(); ~Myclass(); void show_value(); void say_hey(); }; myclass.cpp---------------------------------- #include "myclass.h" #include <iostream> using namespace std; Myclass::Myclass(){}; Myclass::~Myclass(){}; void Myclass::show_value(){ printf("%d\n", my_int); } void Myclass::say_hey(){ printf("hey\n"); } main.cpp------------ #include <iostream> #include "myclass.h" using namespace std; //オブジェクトをつくりそれをオブジェクトとして返す関数(return_obj) Myclass return_obj(int int_in){ Myclass myobject; myobject.my_int = int_in; //引数をオブジェクトのmy_intに渡す return myobject; } //オブジェクトをつくりそれの参照を返す関数(return_ref_obj) Myclass& return_ref_obj(int int_in2){ Myclass myobject; myobject.my_int = int_in2; //引数をオブジェクトのmy_intに渡す Myclass& ref_of_myclass = myobject; return ref_of_myclass; } void main(){ Myclass returned_obj = return_obj(1); //関数に1を渡し、1を保持するオブジェクトを作成 returned_obj.show_value(); //整数(1)表示 returned_obj.say_hey(); Myclass& ref_obj = return_ref_obj(2); //関数に2を渡し、2を保持するオブジェクトを作成し参照として受け取る ref_obj.show_value(); //整数(2)表示 ref_obj.say_hey(); } プログラムを実行した出力------------------- 1 hey -858993460 hey このようにオブジェクト自体を返してコピーしたもの(return_obj使用)はshow_valueでただしくオブジェクトに保持された数が表示されますが 参照でオブジェクトを返したもの(return_ref_obj使用)はアドレスのような数列が表示されます。 質問A これはオブジェクトの参照を返す関数(return_ref_obj)でオブジェクトを作成しても、そのオブジェクトが関数の中でのみ実在しており、関数がおわるとその実体がなくなるためではないかと解釈しているのですがそれで正しいでしょうか? 質問B 関数でオブジェクトを作成してそれをプログラム本体に渡すときはreturn_objのようにオブジェクト自体をコピーしなければ参照などで渡すことはできないのでしょうか? クラスと参照自体勉強を始めたばかりで色々と初歩的な間違いもあるとは思いますが、よろしくお願いします
- Linux/Windowsのシステムコール
CentOS 5.5 + Eclipse CDT で C++ のプログラミングを始めたばかりです。 プログラムを作成するにあたって、今後 Windows へ移植したときに移植しやすいプログラムを作成したいと考えています。 (現段階ではまだ標準出力に何か表示するお粗末なものですが) 素人考えでは、システムコールを使用すると他プラットフォームへ移植したときに同等のシステムコールがないと実装を大きく変更しなければならなくなるので、あらかじめどれが固有のシステムコールかを判断したいと思っています。 例えば Linux では待ち行列を実現するのに mkfifo システムコールが使えるけど、Windows では使えないから待ち行列をあらかじめロジックで実現しよう、という感じです。 (あくまで例なので、Windows の FIFO の API を使えばいいじゃん、というのはナシで) なので、Linux および Windows でシステムコール一覧を参照する方法を教えて頂きたいです。 まあ、STLでもプラットフォームが変われば動く保証はないみたいなので、Javaみたいなクロスプラットフォームのようにはいかないと思いますが。。。 よろしくお願いします。
- SSL通信じゃないとまずいですか?
最近ペニーオークションに興味があって 比較的安全だろう99OFFというサイトを見つけました。 http://99off.jp/Reg.aspx ここからいざ登録をしようとしたのですが 登録ページが暗号化(SSL)通信になっていないのです。 他のペニーオークションサイトはどうだろうと見たのですが どれも登録ページがSSL通信ではないです。 そこで思ったのですが別にSSL通信でなくても大丈夫でしょうか?
- メモリー増設について教えてください
メモリーの増設をしようと思うのですが、PCは富士通FH700/A5T・WIN7・インテルI5CPU M450@2.40GHZでメモリーが4GBなのですが8GBにしようと思うのですが、話によるとシステムの種類が32ビットだとメモリーを8GBにしても4GBまでしか使えないといいますが本当でしょうか、メモリーをフル活用するにはラムデスク(ラムデスクとはなんでしょうか?)を制作するなど聞いたことありますが、(立ち上がりが遅くなると聞きましたがほんとでしょうか?)ラムを作ればメモリーをフル活用できるのでしょうか? 教えていただきたいのですが パソコンはあんまりとくいなほうでないのでよろしくお願いいたします
- ベストアンサー
- CPU・メモリ・マザーボード
- 0473
- 回答数3
- Lavie L と M、使用目的に合っているのは?
Lavie L と Lavie Mのどちらが自分の目的に合っているのか迷っています。 昨日、大手家電量販店にて、Lavie L(秋冬モデル)を購入しました。 パソコンのことがよくわからず、店員さんに相談しながらほぼ即決で購入に至りましたが、帰宅後NECのHPをみていて、Lavie M(春モデル)の方が適しているのではないかと感じました。 そこで、私の目的意図に対して、どちらが適していると考えられるかをアドバイスしていただけないかと思い投稿しました。よろしくお願いいたします。 まず最初に提示した条件は (1)ウィンドウズであること。 (2)フォトショップとイラストレーターをインストールする予定があること。 (3)画像処理も含め、動作が快適に行えること。 (4)持ち運びに便利なこと。 以上、4点です。 購入したものは * Lavie L (LL750/CS6R) 秋冬モデル * CPU: インテルCore i5-460Mプロセッサー * 重さ: 約3.2kg * バッテリー駆動時間: 約1.8時間 * 価格: およそ10万 それに対し、気になっているものは、 * Lavie M (LM750/DS6R) 春モデル * CPU: インテルCore i7-660UM プロセッサー 超低電圧版 * 重さ: 約1.8kg * バッテリー駆動時間: 約10.0時間 * 価格: およそ13万 です。 注目している項目以外の機能を比べてみると、Lavie Lの方が能力は上のようですが、 今後「これがあってよかった」と思える機能があるかどうかというと、疑問です。 また、ネット環境にはつながず、あくまでも、仕事用のサブパソコンとしての購入でした。 皆様のお知恵をお借りしたく存じます。 よろしくお願いいたします。
- ベストアンサー
- ノートPC
- chacchasen
- 回答数10
- 構造体配列のクイックソート
こんにちわ。 構造体配列のリストを ポインタのつなぎ変えによるクイックソートで 以下のようなソートをしたいのですが、悩んでおります。 struct info { int count; struct info *prev; struct info *next; }; int main () { struct info info[5]; /* 初期値設定 */ quick_sort(info, 0, 5); return 0; } 上記のようにして、クイックソートをしたいのですが、 よくあるクイックソートだと 例えば初期値を <配列のindex>要素の値を <0> <1> <2> <3> <4> 5 1 4 3 2 などと定義した場合 普通のクイックソートだと <0> <1> <2> <3> <4> 1 2 3 4 5 というように並び変えられてしまい <配列のindex>と 要素の値の組み合わせが変わってしまいますが、 この組み合わせを変えず、 struct info *if; if = info; for (i=0; i<MAX; i++){ printf("%d", if->count); if = if->next; } printf("\n"); とすることで、indexとしては昇順になっていないが *nextをたどっていくことでちゃんと目的の値の昇順になっている というのを実現したいのですが、ポインタのつなぎ変えか何かが 間違っているようで うまいことできていません。 どなたかご教授いただけますでしょうか。 申し訳ありませんが、よろしウお願いいたします。
- 締切済み
- C・C++・C#
- donntakosu
- 回答数7
- auの料金について
僕は今DOCOMOの携帯を使用しています。 今年から大学生になり、彼女とは遠距離になってしまうため、通話料を無料にするためauの携帯を新規契約したいと考えています。 自分で少し調べたところ、auの誰でも割に登録で新規契約して通話料を無料になるとのことをネットや広告などで拝見しましたがよくわかりません。 そこで質問ですが、 ふたりの通話目的だけなので誰でも割だけで他のオプションはなんもつけずに契約した場合の最低の基本料金を教えてください。 他にも色々知っておくと便利なことなども教えてもらうと嬉しいです。 一年浪人したため来年で成人なので来年自分が2台契約して彼女に渡すか、姉に頼んで契約してもらい料金は自分が払おうと思っています。 長くなりましたが回答お願いします。
- ノートパソコンバッテリーってこんなもん?
ノートパソコン使用されてる方にお聞きしたいのですが・・・・ 先日東芝ダイナブックRX3/T6MというノートPCを購入したのですがバッテリーのもちの悪さに あきれてしまってます。 購入後初めてニコ生配信したのですが、満充電後2時間もたずにバッテリーが切れました。 カタログ表示では10時間となっているのにです。無線LANを使用することや数種類のソフトを 立ち上げての使用ですので、当然カタログ通りとは思っていませんでしたが、あまりの 違いにあきれております。 又、充電時間も電源OFF時で5時間と表記されているのですが、3時間程で満充電となりました。 こんなものですかね?予備バッテリーを購入するしかないのですかね。 何かアドバイス、ご意見等 回答下さると幸いです。 よろしくお願い致します。
- Pythonのバージョンアップについて
CentOS5.5にはPython2.4がデフォルトで入っているのですが、Python2.6でスクリプトを作成する必要がありバージョンアップをしているのですが、dbusモジュールのインポートができず行き詰っております。 具体的には、Python2.4とdbus-pythonがインストールされている状態で、下記のURLを参考にyumでPython2.6をインストールしました。 環境としては「/usr/bin/phthon2.4」と「/usr/bin/phthon2.6」が出来た状態です。 libは「「/usr/lib/phthon2.4」と「/usr/lib/phthon2.6」です。 dbus-pythonのインストール先は「/usr/lib64/python2.4/site-packages/dbus」になります。 Python2.4を環境で下記のインポートは問題ありません。 >>>import dbus しかし、Python2.6環境で同じコマンドを実行すると下記のようなエラーになります。 >>> import dbus Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named dbus dbusの再インストールはリスクが高いと思い、モジュールのパスを通してみたところ下記のようなエラーになりました。 >>> import sys >>> sys.path.append('/usr/lib64/python2.4/site-packages') >>> import dbus Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python2.4/site-packages/dbus/__init__.py", line 1, in <module> from _dbus import * File "/usr/lib64/python2.4/site-packages/dbus/_dbus.py", line 45, in <module> import dbus_bindings ImportError: /usr/lib64/python2.4/site-packages/dbus/dbus_bindings.so: undefined symbol: Py_InitModule4 rpmでモジュールインストール先の変更や、Python自体をソースからインストールなどしてみたのですが、全てうまく行かない状態です。 Pythonバージョンアップ前にインストールされているモジュールの使い方をご存知の方がおられましたら、宜しくお願いします。
- HDDへの書き込みはどのように行われますか?
HDDの書き込み時に、セクタサイズ未満、あるいはクラスタサイズ未満の書き込みはどのように実行されるのでしょうか? 例えば、512バイト(1セクタ分)のデータの、奇数バイト目(256ヶ所)にだけデータを上書きしていく場合、「セクタを読み出して、1バイト上書きして書き戻し」という操作が256回行われるのでしょうか? もしそうだとすると、プログラマが何も工夫しなければ、たった256バイトの書き込みのために、R/Wあわせて512回ものディスクアクセスが生じてしまうことになりますよね? それとも同一セクタやクラスタに連続して行われる書き込みは、OSやランタイムのバッファで自動的にまとめてくれるのでしょうか? またこの場合、どういう方法でまとめてくれるのでしょうか? ご教授よろしくお願いします。
- ベストアンサー
- C・C++・C#
- minimax2005
- 回答数2
- 大至急お願いします。Pythonのプログラミング
Pythonのプログラミングについて Editraで、頑張ってソースコードを書いたのはいいのですが、どうやってアプリケーションを実行するのかがわかりません。 Tkinterで書いてます。 保存して、ファイル名を「~.py」にして、cmdから、呼び出して実行しようとしましたが、「アプリケーションが見つかりません」というアラートが出て、「アクセスが拒否されました」と出るばかりです。 どうやったら実行できるのでしょうか? できる限り早くお願いします!!!!!!
- 締切済み
- その他(プログラミング・開発)
- mk23_sp
- 回答数5
- C++/CLIのDLLを、C#で参照した際の変数型
現在、C++/CLIで作成したDLLを、C#で使おうとしています。 http://xptn.dtiblog.com/blog-entry-20.html 上記サイトを参考に、DLLを参照することはできたのですが、 C++/CLI側で「ulong」で定義した引数が、 C#で参照したとき「uint」に変わってしまっています。 【C++/CLI】 opensession(ULONG arg1, ULONG* arg2 ); 【C#】 opensession(UINT arg1, UINT* arg2); 調べてはいるのですが、 この原因がどうしてもわかりません。 ご教授のほど、よろしくお願いします。
- C++/CLIのDLLを、C#で参照した際の変数型
現在、C++/CLIで作成したDLLを、C#で使おうとしています。 http://xptn.dtiblog.com/blog-entry-20.html 上記サイトを参考に、DLLを参照することはできたのですが、 C++/CLI側で「ulong」で定義した引数が、 C#で参照したとき「uint」に変わってしまっています。 【C++/CLI】 opensession(ULONG arg1, ULONG* arg2 ); 【C#】 opensession(UINT arg1, UINT* arg2); 調べてはいるのですが、 この原因がどうしてもわかりません。 ご教授のほど、よろしくお願いします。
- ノートパソコン購入
ここ最近何度も質問させてもらってますがまたよろしくお願いします。申し訳ありません。 前回も色々と質問させてもらい、メーカーや機種などを含め3つに絞ることができました。この3つの中ならみなさんはどれにするかアドバイス頂きたいです。ちなみに利用目的は、大学進学にあたりレポート作成や提出、履修登録などです。持ち運びするかもしれません。 他にもインターネット閲覧や動画のダウンロード、ネット株などで使用したいと考えています。 以下が決めかねている3つの機種です。 (1)東芝dynabook T350/56 CPU:Core i5-480M メモリ:4GB(最大8GB) HDD:640GB (2)Panasonic Let's note CF-S10AYF1DC CPU:Core i5-2520M メモリ:4GBDDR3 HDD:500GB ※大学推奨モデル (3)Lenovo ThinkPad G560 CPU:Core i5-460M メモリ:2GB HDD:500GB 以上の3つで悩んでおります。アドバイスよろしくお願いします。
- ベストアンサー
- ノートPC
- newaysandy
- 回答数9
- オリジナルハッシュ関数について
符号理論を応用した新しいハッシュ関数を実装してみました。 ソースはここです。 http://codepad.org/QeQXsR28 メモリを節約することもできますが、アルゴリズム的に欠陥がないかどうか教えてください。
- au boxから映画を携帯に転送するのは無料?
au boxから映画を携帯電話に転送するには、通信費がかかるのですか? また、転送した場合、映画はずっと携帯電話内に保存されるのでしょうか?
- 当方の希望を満たす型番教えて下さい。
1)~4)が含まれたノートノートパソコンの型番知りたいです。 1)~4)は優先度です。1)だけ、2a)まで、2a)は無いが2b)まででも結構です。 もちろん、1)2)4)はある等組み合わせでも結構です。 1)長時間バッテリー ⇒実測で4時間は持って欲しいです。 2)DVDマルチ 3a)WEBカメラ ⇒スカイプしてみたいです。 3b)XP ⇒現在Vistaで、過去使っていたツール、昔のアクロバット等起動出来ないです。 4)地デジ ⇒テレビがアナログなので、ディスプレイだけ購入して、持ち運び以外はノートPCに繋いぎます。 正直、優先度順にいくと3b)のパナソニック製が限界でしょうか。。。 WEBカメラ欲しいのですが、パナソニック製以外、バッテリー時間が2時間強が限界でしょうか。。。 パナソニックしか思いつきませんが、アドバイスお願いします。
- ベストアンサー
- ノートPC
- inoueinoue
- 回答数4