1 名前:デフォルトの名無しさん [2018/08/24(金) 07:50:35.97 ID:VD4/++xS.net] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その38 https://mevius.5ch.net/test/read.cgi/tech/1526522954/
424 名前:ノ余るかな、と気になって… JavaScriptの方が管理しやすいかなぁ [] [ここ壊れてます]
425 名前:デフォルトの名無しさん [2018/10/06(土) 17:57:08.71 ID:e52HQVrn.net] どうみてもDjangoの方が楽
426 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 18:03:47.60 ID:WCVR4P9P.net] >>402 Dangoでゲーム? フロントエンドどうすんの? JS必須だろ
427 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 18:22:42.90 ID:ClYVvTDI.net] ほんとだ、結局JavaScriptが必要ですね それに、誰かにやってもらう場合だと、サーバー用意するか、相手の方にもPythonいれてもらわないとダメだ…
428 名前:デフォルトの名無しさん [2018/10/07(日) 08:57:44.35 ID:uCAn2+3z.net] 言語より環境の方に縛られるという事だな
429 名前:デフォルトの名無しさん [2018/10/07(日) 12:13:18.81 ID:Q039ezIc.net] 既に環境を構築してあるDockerを使え 便利だぞ
430 名前:デフォルトの名無しさん mailto:sage [2018/10/08(月) 14:28:05.12 ID:ofuYlJd2.net] webapiで取得したjsonのログデータを取得したあとcsvに変換するプログラム作ってます pandas使ってappendで1行毎dataflameを追加していく方式でやっているんですが処理時間がかなり掛かってしまいます jsonをcsvに変換する良い方法他にないですかね? jsonはかなり深くネストされておりfor文使って特定のキーの場合のみdf追加としているので処理が重そうです csvは10万行近くになります
431 名前:デフォルトの名無しさん [2018/10/08(月) 15:11:28.99 ID:+5qyKWRv.net] 元のjsonファイルと出力したいcsvのイメージ貼ってみ
432 名前:デフォルトの名無しさん mailto:sage [2018/10/08(月) 16:49:00.47 ID:QZm1evdb.net] jsonはこんな感じにvisitの中身全部が欲しいです https://jsoneditoronline.org/?id=9ceece44f53c498e925b524305f23a33 csvはこんな感じhttps://dotup.org/uploda/dotup.org1662082.jpg keyがカラムで値がフィールド、actionsの中のthreatsが配列になってるのでその部分は複数行に分けて配列数分欲しいです
433 名前:デフォルトの名無しさん [2018/10/08(月) 19:20:19.69 ID:0S7LCRH0.net] 1レコードあたりの行数に目途が付くなら 単にテキストファイルをシーケンシャルに読んで レコード毎にループして正規表現とかで処理するか 丸ごと一個のjsonを読むんじゃなくて json の visits [] の中身だけに適用して やっぱりレコード毎にループで処理
434 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 11:08:24.97 ID:ut46KIbF.net] ちょっと何言ってるか分からないです、もう少しかみ砕いてほすぃ
435 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 12:09:20.78 ID:lquF7TGT.net] >>411 全体的にpandasは使わずに 正規表現などを使った自前の処理でカンマ区切りのテキストを生成して テキストファイルに追記モードで行を追加していけば処理が軽くなるんじゃね ということ あと、countryとcountryCodeが常に同じペアになるなら長い方を削除するとか "os": "Windows"を"win"とか"w"に変換するとかで書き込み量を減らせば 多少早くなるかも
436 名前:デフォルトの名無しさん [2018/10/09(火) 17:28:44.16 ID:c0UbTvkE.net] jsonのobjectって結局馬鹿デカいリストだから 全部pandasに食わせるのは非効率
437 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 19:09:14.17 ID:QlHcI7ga.net] >>410 >>412 ありがとうございます 目処は付かないですね 25000件のjsonを中の配列単位で分けていくと10万行になったて感じですので… pandasは勝手に軽いものと思ってたんですが
438 名前:そうでは無いのですね もう少し自力で試しつつ、無理そうであれば別の方法探してみます 回答ありがとうございました [] [ここ壊れてます]
439 名前:デフォルトの名無しさん [2018/10/10(水) 01:28:49.68 ID:cxHjn/W/.net] 25000件で10万レコードって意味なら 1レコードあたりたったの4行だぞ 大したことないじゃん
440 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 01:50:02.45 ID:q9nqGoRh.net] 恥ずかしい
441 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 07:27:32.29 ID:sjNy7la0.net] anaconda環境でnotepadでプログラム書くのできますか? Jupiter使ったほうが良いでしょうか?
442 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 07:48:52.41 ID:qywSzTWT.net] メモ帳は、プログラミングに使ったらダメ! BOM付きUTF-8 になるから、バグる。 BOMなしUTF-8(UTF-8N)にできるエディタを使うべき! 今は、すべての言語で、VSCode を使う
443 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 08:25:31.03 ID:sQpJ1MsF.net] jupyterな
444 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 05:13:12.70 ID:MfMAF/GN.net] >>418 ありがとうございます。PCが古いので軽いの探します。
445 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 06:05:36.88 ID:4dmempzq.net] >>420 メモ帳のような気楽に使える軽いWindows用エディタでTeraPadがあるよ BOMなしUTF-8にも対応してて、設定することでデフォルトで使う文字コードや改行文字などを指定できる いろいろな言語の予約語の強調表示にも対応してる TeraPad https://www.vector.co.jp/soft/win95/writing/se104390.html
446 名前:デフォルトの名無しさん [2018/10/11(木) 08:09:45.65 ID:MfMAF/GN.net] >>418 すいません、ありがとうございます。 それとパスが通ってなくコマンドプロンプトからpythonと入れても起動できなくて、anaconda3\pythonだと起動するのですが。 環境変数にC:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin;など色々試してもダメでした。 英語のサイトとかを見てもできなくて、なんか根本的な所が足りないと思います。 なにか根本から勉強できるサイトはないでしょうか?英語でもなんとか頑張ります。
447 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 08:27:36.65 ID:55KoDwWG.net] >>422 ログインし直す
448 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 09:45:22.82 ID:/KTbB4eS.net] Python と Javascript ではじめるデータビジュアライゼーションの50ページです https://ideone.com/Xv83M6 28行目でエラーになってしまいます。 Traceback (most recent call last): File "./hoge.py", line 28, in <module> cols.sort() AttributeError: 'dict_keys' object has no attribute 'sort' 何がいけないんでしょうか?
449 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:12:50.15 ID:dGtKIiaR.net] 'dict_keys' オブジェクトは 'sort' 属性をもっていない sortメソッドはおそらくリストオブジェクトのメソッドだろうから dict_keysオブジェクトをlistオブジェクトにしたら動くと思うよ
450 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:17:30.10 ID:6B3tPTW8.net] >>420 MeryやgPadがおすすめ TeraPadはUTF-8で読み書きはできるけどShiftJISに無い文字は扱えないのでおすすめしない
451 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:25:22.78 ID:/KTbB4eS.net] >>425 どうもありがとうございます list()で括ったらうまくいきました 3年くらい前の本なんですが、Python2だとこれでも動いたのかそれとも誤記なのかどっちでしょうか? 次のページで、printする際に最後にコンマを付けると改行されないと書いてあったけれど、python3ではコンマ有る無しで表示結果は変わりませんでした。 print(hoge), # こんな感じで
452 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:31:34.26 ID:3Bdkvxy9.net] 漏れは、TeraPad は、メモ書きに使っている。 アプリのサイズが小さい ただし、一部の文字が使えない。 中国の地名の「深圳」みたいな文字が「深?」になる
453 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:35:19.88 ID:dGtKIiaR.net] >>427 詳しくはpython2とpython3の違いでググってね
454 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:43:56.19 ID:3Bdkvxy9.net] >>422 例えば、コマンドプロンプトで、where notepad と入力すると以下のように、メモ帳の実行ファイルのパスが表示される C:\Windows\System32\notepad.exe C:\Windows\notepad.exe 同様に、where p
455 名前:ython と入力すれば? これで正しく表示されないのなら、 python.exe があるフォルダを、ユーザー環境変数PATH に追加する 環境変数PATHをいじるという事は、全システムの挙動を変える、危険な行為だから、 その知識がないと、開発なんてできない! [] [ここ壊れてます]
456 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 12:31:23.10 ID:3et536X6.net] >>427 3年前でpython2なのか、スゲー本だな 訳注ぐらい入れれば良いのにね python3だとprint(hoge end='')
457 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 12:35:06.81 ID:3et536X6.net] いけねカンマ抜けた print(hoge, end='')
458 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 13:10:38.79 ID:bLRRmr2D.net] >>429 >>431 >>432 どうもありがとうございます。 2と3の違いググりました。 listで括らない方法はPython2でのやり方、printの最後のコンマもPython2でのやり方なんですね 2016年7月に原書が出て2017年8月に日本語版が出た本です。 今見たらprintの訳注が載ってたんですが、コンマはPython2でのやり方で3では使えないと言った事は書かれてありませんでした。 print(hoge, sep='')だとよりPythonらしい書き方だという風に書いてありました。
459 名前:デフォルトの名無しさん [2018/10/11(木) 18:42:11.43 ID:MfMAF/GN.net] >>430 ありがとうございます。 ずっとやってましたが、色々と調べててもわかりそうにありません。 anaconda3\pythonで動くのに、whereでpythonは出てこず、Path設定してもダメです。 ほんと基本がわかってないと思うので、pathにチェック入れてanacondaを再インストールしてみようと思います。 自分でいじるのは、知識をどうにかしてつけてからにします。
460 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 20:38:12.53 ID:OPK+KI2v.net] >>434 Pythonで何をしたい?機械学習関係ならGoogle Colabがお手軽
461 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 23:48:03.56 ID:gjrJHmO+.net] Anacondaのデフォインストール先C:\Users\<ユーザー名>\Anaconda3じゃん C:\Anaconda3にパス通しても動かなくて当たり前 コマンドプロンプトからやらずにスタートメニューのAnaconda Promptから開けばパス通ったコマンドプロンプトが開く
462 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 05:14:13.33 ID:sf+PB/Vk.net] >>435 将来的に検索もできる対話型AIを作りたいです。 >>436 その当たり前がわからなくて、色々サイトみてて当たり前にできてるようなので、問題解決しないとダメなのかなって思ってしまいます。 パスが通ったとか、コマンドプロンプトとanaconda pronptがどういったものかもわからない状態です。 一つ一つがどういったもので、どう動いてるとかから勉強したいと思います。
463 名前:デフォルトの名無しさん [2018/10/12(金) 09:45:35.48 ID:C1pVYns8.net] Linux の基本コマンドとか、環境変数PATH など、 OS の基礎を知らない人は、開発者になれない 情報処理資格とか、コンピューターリテラシーが必要 仮想環境では、activate を実行したときだけ、 環境変数PATH に追加するようなプログラムもある activate する前には、python というコマンドは実行できないが、 activate した後には、python というコマンドが実行できる
464 名前:デフォルトの名無しさん [2018/10/12(金) 14:37:53.89 ID:46Wm2YVF.net] >情報処理資格 Linux とは関係ない 開発に必要ということは同意
465 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 20:39:27.21 ID:i2AAnytP.net] EXCELを操作できるライブラリopenpyxl(ver2.3.0-1)なんですが行の挿入でエラーになります。 import openpyxl as py wb = py.load_workbook('aa.xlsx') ws = wb.active ws['A1'] = 'NURUPO' ws.insert_rows (1) wb.save('aa.xlsx') insert_rowsじゅないの?
466 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 21:34:22.63 ID:f9khLXsZ.net] >>440 ちょっとググったら2.5.0から実装されたみたいよ https://qiita.com/gameover/items/13868ca9101348bdf4fc
467 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 22:05:44.95 ID:i2AAnytP.net] サンクス バージョンアップに挑戦してみる
468 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 00:43:28.48 ID:7a55cFNG.net] re.searchでグループ化したものを取り出す時に ?P<name>で出来たのですが re.subと同様に通常の正規表現の「\1」のように 書く書き方は出来ないですか? よろしくお願いします。
469 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 02:11:30.62 ID:bkAbhEU5.net] >443 > m = re.search("b(.)", "abcdefg") > print(m.group(1)) c
470 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 02:22:51.26 ID:7a55cFNG.net] >>444 ありがとうございます!
471 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 06:13:05.25 ID:Ov+YlZxq.net] アナコンダインストールすればIDEいらない?
472 名前:デフォルトの名無しさん [2018/10/14(日) 16:58:59.85 ID:G4e8iFcg.net] Py_INCREF()を呼ぶタイミングを教えてください
473 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 19:12:00.22 ID:NuEYON6j.net] 下のようなコードを書いたとして、 mainの中でfunc1が呼ばれない場合でもhogeはimportされますか? func1はテスト用に置いてるだけで普段は使わない関数なので普段は余計なhogeをインポートされたくないのですがやはりコメントアウトしなきゃですかね? def func1(): import hoge ... def main(): ...
474 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 19:35:54.62 ID:FWr9wKhu.net] >mainの中でfunc1が呼ばれない場合でもhogeはimportされますか? されないよ ためしてみそ
475 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 20:15:26.78 ID:O0tCb1jZ.net] ありがとうございます! 確かめたくても方法が分からなかったですので。助かりました
476 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:15:09.25 ID:jLw0xcfm.net] >>449 どうやったら試せますか?
477 名前:デフォルトの名無しさん [2018/10/14(日) 21:16:06.39 ID:WLfX4fFS.net] キャッシュで判る
478 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:44:29.12 ID:FWr9wKhu.net] >>451 >>448 の状態で、importしてないと呼び出せない機能をmainに書き込む たとえば def func1(): import re re.compile('hoge')←これはfunc1をよんでくればエラーしない def main(): re.compile('hoge') ↑func1をよんでないのにこれ書いたらエラーする
479 名前:デフォルトの名無しさん [2018/10/14(日) 21:45:08.68 ID:SE0u9ZQa.net] 日本語で
480 名前:デフォルトの名無しさん [2018/10/14(日) 21:46:06.36 ID:WLfX4fFS.net] その理屈だと一回呼んで戻ってきたら使えることになるな
481 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:48:40.36 ID:FWr9wKhu.net] >>455 あー そのはっそうは なかったw 450のかき方(インデントは正しくできているものとしてクレン)したら、 func1の中でしかreのimportは効いてナインかな
482 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:53:34.20 ID:FWr9wKhu.net] ちょっとちゃんと実験してみるは... 三 ( ´D`)
483 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:59:28.27 ID:FWr9wKhu.net] ( ・∀・)ノフォラァヨ!!---===≡≡≡ ttp://dpaste.com/18SSZEP :main内でエラーするかきかた
484 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:03:32.75 ID:FWr9wKhu.net] つづき ttp://dpaste.com/17A5RJ3 :やっぱりmain内でえらーしますた (この はっそうは なかった) けつろん >453の注釈はまちがいまくりだな!ゲヒャ(∀・∀) >>455 の疑問はどんぴしゃごもっともだった
485 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:19:11.86 ID:FWr9wKhu.net] けつろん > 450のかき方(インデントは正しくできているものとしてクレン)したら、 func1の中でしか reのimportは効いてナイン
486 名前:デフォルトの名無しさん [2018/10/14(日) 22:21:07.83 ID:OWtIHbk2.net] importされたモジュールはimport 文が表れるスコープのローカル名前空間で名前を定義される https://docs.python.org/ja/3/reference/simple_stmts.html#import
487 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:52:00.55 ID:FWr9wKhu.net] >>461 ありがとーん
488 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:53:21.18 ID:O0tCb1jZ.net] 結局スコープ内でしか有効じゃないから確かめる方法は無いってこと?
489 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:53:49.91 ID:jLw0xcfm.net] たいへん勉強になりますた。
490 名前:デフォルトの名無しさん [2018/10/15(月) 04:25:17.24 ID:0W4mw5Ny.net] >>463 >>452 キャッシュで判る 実行前にキャッシュを消して 実行後にキャッシュが出来ているかを見れば 読み込まれたか無視してるかは判る
491 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 08:59:02.58 ID:pyA/8yHB.net] キャッシュはどうやって見れますか? mainでキャッシュ見れる関数を書くのですか?
492 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 09:32:04.81 ID:vNVpiBIf.net] マジでアホの考えなんとやらだ importするとクラッシュするモジュールを用意して func1からimportしてみりゃーいいだろ クラッシュすればimportされてるし、しないならimportされていない
493 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 09:56:16.94 ID:XOcEM3KA.net] importするとクラッシュするモジュールが発見出来ませんでした・・ よければ名前を教えて貰えますか?pipで入れられたらなおありがたいです。
494 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 09:57:31.08 ID:vNVpiBIf.net] いや、自分で書けばいいだろ 馬鹿が
495 名前:デフォルトの名無しさん [2018/10/15(月) 10:31:21.43 ID:/DZZgAIK.net] importするmoduleを自分で書くなら moduleの初期化時にprint('読まれたよ!')って書いて置けば桶
496 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 12:38:01.14 ID:A4+xGAqj.net] なんなの遊園地?
497 名前:デフォルトの名無しさん [2018/10/15(月) 16:32:59.34 ID:13a7w8hI.net] >>470 天才現る!
498 名前:デフォルトの名無しさん [2018/10/15(月) 18:05:35.02 ID:5iEXqQwD.net] >>463 スコープ内で有効だから確かめられないではなくグローバル変数にすれば良いのでは def func(): import re as _re global re re = _re def main(): func() #コメントアウトするとprintでエラー print(re)
499 名前:デフォルトの名無しさん [2018/10/15(月) 18:19:51.97 ID:/DZZgAIK.net] def main(): #func() #func()無関係にprintでエラー import re as _re print(re)
500 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 21:29:43.28 ID:E6pr56BO.net] 私たち日本人の、日本国憲法を改正しましょう。 総ム省の、『憲法改正國民投票法』、でググって みてください。拡散も含め、お願い致します。
501 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 21:35:11.02 ID:E6pr56BO.net] 私たち日本人の、日本国憲法を改正しましょう。 総ム省の、『憲法改正國民投票法』、でググって みてください。拡散も含め、お願い致します。
502 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 17:08:42.26 ID:u7YyW5Kg.net] 自作クラスのインスタンスが持ってる変数を全て、保存しておいた値に戻すようなコードを書きたいのだけれど、どうやって書けばいいかな? ある時点の値にロールバックしたいということなのだけれど、継承していてもちゃんと動作するようにしたい 想定している処理はこんな感じ class A: def rollback(self): 全部のインスタンス変数を self.backup の値に戻す def make_backup(self): self.backup = バックアップを作成 class B(A): def proc(self): self.make_backup() # なんか処理 self.rollback() 設計が悪いと感じたらなにか代替案を教えていただければ嬉しいです
503 名前:デフォルトの名無しさん [2018/10/16(火) 18:16:27.10 ID:YLHbxnbG.net] pickle
504 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 18:24:52.10 ID:LVmCdvc6.net] あの、プログラム終わったら次のプログラムを起動したいのですがどうやったら開けますか? 最後にはシャットダウンしたいです。 p1.py実行 →最後の行でp2.pyを呼び出す →p2.py実行 ... →最後の行でpn.pyを呼び出す →pn.py実行 →最後の行でシャットダウン こんな感じでやりたいです。
505 名前:デフォルトの名無しさん [2018/10/16(火) 18:28:08.45 ID:YLHbxnbG.net] subprocess.Popen
506 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 18:32:15.10 ID:LVmCdvc6.net] ありがとうございます、できそうです。
507 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 18:34:41.31 ID:+Y6Wm7U2.net] パイパイを実行?
508 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 21:07:08.91 ID:uMB0oNTu.net] >>479 それチェーンにしないとダメなの? 普通にp1.py, p2.py, ..., pn.pyを次々に呼び出して最後にシャットダウンするシェルスクリプトなり
509 名前:バッチファイルなりを書けばいいような気もするんだが [] [ここ壊れてます]
510 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 11:21:44.01 ID:tSH31TrF.net] >>477 グローバル変数使うんじゃだめ?
511 名前:デフォルトの名無しさん [2018/10/17(水) 11:49:20.45 ID:LtC7K5yP.net] ORM
512 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 12:47:48.23 ID:tSH31TrF.net] >>477 >>484 です。知ったかぶりしてすみません。グローバル変数ではなくクラス変数でした。 test.pyで class MyClass: commonVALUE=0 def __init__(self,initv): self.value=initv def p(self): print(f'instance value= {self.value}') print(f'class value= {MyClass.commonVALUE}') def bkup(self): MyClass.commonVALUE=self.value def bkload(self): self.value=MyClass.commonVALUE としといて >>> from test import * >>> a=MyClass(100) >>> b=Myclass(0) >>> a.bkup() >>> b.p() instance value= 0 class value= 100 >>> b.bkload() >>> b.p() instance value= 100 class value= 100 この後で >>> c=MyClass(-1)とあらたにインスタンスを作っても >>> c.p() instance value= -1 class value= 100 で、クラス変数は0にはならないみたい。
513 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 13:06:09.93 ID:tSH31TrF.net] 行数制限のため連投ですみません。 継承も大丈夫です。 >>> class B(MyClass): ... def dec(self): ... self.value-=1 >>> d=B(1) >>> d.p() instance value= 1 class value= 100 >>> a.bkup() >>> d.p() instance value= 1 class value= 100 >>> d.bkload() >>> d.dec() >>> d.p() instance value= 99 class value= 100
514 名前:デフォルトの名無しさん [2018/10/17(水) 13:31:27.53 ID:LGIAN4QA.net] pickle
515 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 13:35:53.65 ID:cWz6TRDk.net] >>486 それじゃクラス共通になってまうやん インスタンス毎にバックアップデータ持てないから意図と違うと思う >>477 で良いと思うけど、何を懸念してるのかを書くともっといい案をもらえそう
516 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:07:18.34 ID:tSH31TrF.net] >>489 クラスと継承クラス共通でバックアップって意味じゃないの? そりゃスマンコってす ... 各インスタンスごとのバックアップを作って、一括でpush/popしたいなら、 リストの要素を各インスタンスをにしといて、 for i in in instance_list: i.backup() とかにすればいいだけなんでねの?
517 名前:デフォルトの名無しさん mailto:sage [2018/10/18(木) 10:08:35.95 ID:0gY6dccD.net] >>490 push-popと言いながらプログラムはpush-popじゃないのはわざと?
518 名前:デフォルトの名無しさん [2018/10/18(木) 16:41:15.03 ID:551Ojw2f.net] def 関数(arg1,arg2): ゴニョゴニョ return ←これが全く理解できないんだけど、目からウロコみたいなページみたいなのないです? returnが入ると全くわからない。
519 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 07:14:22.21 ID:97FgwNUY.net] codecs.openて普通のopenより処理重いきがするんですが認識あってるかね? 2.7使ってて文字コード指定で100mb前後のtxtなりcsvてり触りたいんだけど通常のopenでは文字指定出来ず、ioモジュールのopen使うと他のライブラリで使ってるopenの挙動がおかしくなる(?)し、codecs遅いしでどうするのがスマートなのかわからん
520 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 08:17:42.62 ID:5hJcbR3H.net] codecs.openを使う そもそもopenに追加処理をしてるのだから、重くて当たり前だろう
521 名前:デフォルトの名無しさん [2018/10/19(金) 12:51:38.13 ID:jQ8EJjtV.net] > 488 https://youtu.be/neqp_mK1PWM#t=4694s
522 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 14:00:43.26 ID:aYMp4dZA.net] https://github.com/michaldaniel/Ebook-Viewer こちらのgitで公開されているLinux用epubビューアを改造して使いやすくしようと思っているのですが、 行き詰まってしまいました。 ブラウザの戻るボタンのようにリンク先(引用元など)に飛んだ後、直前に戻るボタンを実装したいのですが (ボタンはgtk3の都合上up arrowボタンを使っています) 改造したのはheader_bar.pyでして、 def __populate_headerbar(self): (途中省略) # Adds up arrow chapter navigation button self.up_arrow_button = Gtk.Button() self.up_arrow_button.add(Gtk.Arrow(Gtk.ArrowType.UP, Gtk.ShadowType.NONE)) self.up_arrow_button.set_sensitive(False); self.up_arrow_button.connect("clicked", self.
523 名前:__on_up_arrow_clicked) navigation_box.add(self.up_arrow_button) (途中省略) def __on_up_arrow_clicked(self, button): """ Handles Up Arrow clicked navigation event, go backward :param button: """ if viewer.Viewer.can_go_back(): viewer.Viewer.go_back() とすると、 WebKit.WebView.can_go_back() takes exactly 1 argument (0 given) というエラーがでてしまいます。 (viewer.Viewerはwebkitを継承したものです) どなたかお知恵をお貸し願えたら幸いです。 [] [ここ壊れてます]
524 名前:デフォルトの名無しさん [2018/10/20(土) 14:07:46.36 ID:u8BRF3D8.net] 99blues.dyndns.org/blog/2010/01/pywebkit/