- 1 名前:デフォルトの名無しさん [2019/02/04(月) 21:22:10.08 ID:9MrdxUVg.net]
- ★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その40 mevius.5ch.net/test/read.cgi/tech/1542874174/ ◆PythonのHome Page www.python.org/ ◆まとめwiki ttp://python.rdy.jp/ ◆Pythonのソースコードをそのまま5ちゃんにコピペすると インデントが崩れるので こういうところ↓にはってきてください ttp://ideone.com/ Pythonするにはぷち手間あるのがめんどうかなぁ ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste
- 285 名前:デフォルトの名無しさん [2019/02/20(水) 01:36:22.16 ID:R9Rgujjr.net]
- >>266
一応メソッドやメンバの名前の先頭に__(アンダースコア2つ)を付けると擬似的にプライベートになる(外から参照するとエラー) 実際は __名前 を _クラス名__名前 に置き換えるだけだが
- 286 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 03:12:26.13 ID:B2QSVSiS.net]
- >>260-261
Code Runner という拡張機能で、右クリックメニューから、指定したソースコードの範囲を実行できる。 Ctrl+Shift+P で、Run Code でも同じ >>254 Python は、Ruby よりも不自然。 Ruby, JavaScript みたいにメソッドチェーンしにくい Ruby では、メソッド名を、シンボル: で渡せるから、処理の内容が明確 [1, 2, 3].inject( :+ ) #=> 6
- 287 名前:デフォルトの名無しさん [2019/02/20(水) 03:15:50.94 ID:P3DZex+Y.net]
- python資格試験はクラス捨ててもOK?
- 288 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 03:18:46.77 ID:W95E7B6+.net]
- >>272
https://docs.python.org/ja/3/faq/programming.html#is-there-an-equivalent-of-c-s-ternary-operator 昔の名残。条件式はif文ではないのでelseを省略することは出来ない(値を返さねばならない
- 289 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 05:23:08.72 ID:wMUHduDL.net]
- >>261
c#の場合はターミナルからdotnet runで実行だと思いますが、pythonの場合はそういったものはないのでしょうか
- 290 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 07:12:57.02 ID:SpCnH/g7.net]
- >>274
死ね
- 291 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 08:33:48.20 ID:PF1BNO4k.net]
- >>277 コンソールから直接ソースを叩けば動くよ。
hoge.py hoge 或いは python hoge.py 要は、exeファイルと同じ動作をする。だから、exploreから .pyをクリックしても起動する。 (ただ、コンソールが見えないとあまり解らないだろうけど。) python は、コンパイルという作業がいらないから、 dotnet run の様にコンパイルの指定が必要ない。
- 292 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 09:06:26.28 ID:DM4qe6j0.net]
- >>277 だから普通にDOSコマンドの実行と同じprocess.start で良いのでは?
勿論、python が、インストールされている必要はあるが。 ni4muraano.hatenablog.com/entry/2017/07/08/233224 <略> p.StartInfo.Arguments = @"/c python hello.py"; p.Start(); pythonがインストールされていない環境にpython のソースコードだけを渡しても動かないから、その場合は考慮の必要はありそうね。 PythonスクリプトをWindows環境で動くexeファイルにしよう https://www.sejuku.net/blog/65881
- 293 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 10:30:31.71 ID:wMUHduDL.net]
- >>279
>>280 たんにpythonと入れてからパスを指定すればいいだけなんですね あと、右クリからもターミナルで実行ができました
- 294 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 10:51:51.66 ID:BBElsiq0.net]
- >>260
俺、いつもエディタ(geditやGeanyやVS code使ってる)の横にターミナル開いといて、 ソース保存→ターミナルで $ python3 xxx.py→エラー→エディタで編集・保存→ターミナルで再実行(↑&Enter)→ エディタで編集・保存.... てな感じでやってるんだけど、エディタから実行したほうがやっぱり便利なんですか?
- 295 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 11:03:36.79 ID:spTGKHkg.net]
- >>282
煽りとかじゃなくて逆に聞きたいんだけど、 vs code使ってターミナルで実行する意味(メリット)がわからないんだけど。 vs codeのブレークポイントとか利用しないって事?
- 296 名前:デフォルトの名無しさん [2019/02/20(水) 13:38:56.65 ID:gRk6WtzR.net]
- >>113
YouTubeで北神雄大を検索。
- 297 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:06:26.32 ID:uB83dASb.net]
- python書くエディタとIDEで人気なのは、pycharmとvscodeかね
- 298 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:08:20.36 ID:ICk0Y2AW.net]
- Atom...(小声)
- 299 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:13:40.84 ID:NaL8/JA7.net]
- Spyder...(小声)
- 300 名前:瘋癲の錬金術師 [2019/02/20(水) 18:17:46.89 ID:gK0qpGCl.net]
- >>287
あれええな、組み込みターミナルがqtconsoleでインラインプロットもJupyter同様にできる VSCodeでなんとか使えないかと試したけど無理だった VSCodeが弱いFortranも書くので環境統一のためnvim+qtconsoleにした
- 301 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:17:47.79 ID:3A0CDvTh.net]
- Eclipse にインストールしようとして、エラーが出てからほったらかし(超小声)
そもそも、venv anaconda eclipse が強調して動いてくれるんかよ。
- 302 名前:デフォルトの名無しさん [2019/02/20(水) 19:52:42.43 ID:v7iPz90J.net]
- >>266-267
意味はある 継承してみれば判る
- 303 名前:デフォルトの名無しさん [2019/02/20(水) 19:54:36.31 ID:v7iPz90J.net]
- >>270
and は二つ目の条件も成立するかどうか評価するからな
- 304 名前:デフォルトの名無しさん [2019/02/20(水) 19:56:21.10 ID:v7iPz90J.net]
- >>280
sejukuはクソだから貼らなくていいよ
- 305 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 20:30:34.29 ID:0GDprFxB.net]
- そういや侍エンジニアの騒動は鎮火したのか?
- 306 名前:デフォルトの名無しさん [2019/02/20(水) 20:34:51.41 ID:jOZlK4md.net]
- pythonでのWEBスクレイピングって、過去の更新情報も見れたりするのかな?
- 307 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 21:49:50.49 ID:aaH1DDBC.net]
- 何を浚うか指定できないのか?
- 308 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 21:55:37.90 ID:EgtCXVwu.net]
- >>294
Pythonやスクレイピングは魔法でも超能力でもありません
- 309 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 02:54:29.18 ID:kxn9bd4Y.net]
- The camel has two humps (working title)
Saeed Dehnadi and Richard Bornat School of Computing, Middlesex University, UK February 22, 2006
- 310 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 05:22:18.25 ID:kxn9bd4Y.net]
- >>295
https://i.imgur.com/VCh6cSs.jpg
- 311 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 07:26:25.64 ID:8rp9UCEX.net]
- 初心者スレの内容に合うか分からないけど質問させて
最近は作るときに凝集度とか結合度、クラスの責務とかも気になるようになったんだけどじゃあ具体的にどう作るべきかが分からない 何をどう勉強しようか て状態なんだけどデザインパターンを学べばいいのかな?これも大切だけど自分が学びたい内容とは少しずれてるようで…
- 312 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 08:55:18.20 ID:Daclfccm.net]
- >>283
すみません。見え張ってました。VS Codeは数回使ってみだけで、基本的に元通りgedit使っちゃってます。
- 313 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 14:34:58.79 ID:y1fIYiTV.net]
- NIC(ネットワークインターフェイス)が複数あるPCで、
requestsを実行する際にNICを指定してGETなりPOSTなりをしたいのですが、 方法が分かりません、requests自体にその手のパラメータはなさそうですが…。 どなたかお教えください。
- 314 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 15:19:27.90 ID:YDJO8R6Z.net]
- 層が全く違うぞ
どういう意味だ?
- 315 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 15:38:13.68 ID:1URmNQhh.net]
- >>301 NICを指定することはできないんじゃないの? そもそも何をしたいの?
複数のNICが同じLANに出ていけばどちらを経由しても行きつく先は同じだけど。 もしこんなことをやりたいのか? NIC-1 >> LANのIP-1にだけ繋がってる NIC-2 >> LANのIP-2にだけ繋がってる それでIP-2につなぎたいからNIC-2を使いたいとか? だったらNICなんか気にせずに接続しに行けばつながる方にしかつながらない。
- 316 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 15:44:20.15 ID:y1fIYiTV.net]
- >>302
分かりにくかったらすいません… 例として、PCにそれぞれ別のグローバルアドレスを持ったNICが二つあって(AとB)、 あるWebサーバーへの通信(=最終的にやりたいのはrequestsのGET/POST)はNIC-A経由で通信する、 また、別のWebサーバーへはNIC-B経由で通信する、ということをしたいのです。 かえって分かりにくいでしょうか…?
- 317 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 15:46:43.29 ID:y1fIYiTV.net]
- >>303
説明が足りずすいません、上に書いたとおり、NICはそれぞれ別のグローバルIPを持っていて 且つ、通信先はインターネット上のWebサーバーです。 接続先によってNIC(というかソースIP)を使い分けて通信したいのです。
- 318 名前:デフォルトの名無しさん [2019/02/21(木) 15:59:09.52 ID:auY8mpXd.net]
- >>305
皆の質問の意図を理解できていないよ なぜ、 >接続先によってNIC(というかソースIP)を使い分けて通信したいのです。 わざわざこんな使い分けをしたいのか、その理由を聞かれている 普通はソースIPを分けなくても接続できるから
- 319 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 16:40:54.57 ID:yAj8ZZjm.net]
- >>305 何か理由があってどうしてもやりたいのなら、ルータなりでIPルーティングをすれば出来るけど。
静的ルーティングの設定 - Linux https://qiita.com/kooohei/items/b0931ae210911cc52adc この場合だとNICの選択もできる。
- 320 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 16:41:32.97 ID:VKoyYoRj.net]
- >>306
そんなもんプログラムじゃなくてもっと下層層でやることや
- 321 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 17:21:39.12 ID:y1fIYiTV.net]
- >>307
スクレイピングやWEB-APIを叩くときに、ratelimitが厳しいサイトがあるのでほんの少しそれを緩和したいのです。 ありがとうございます、ルーティングをいじってしまうのは最初に考えたのですが、環境は外部のVPSで(また説明不足ですいません) 基本リモートでいじっているので、そのあたりどうなるのかなぁと、明日また試してみます。 また、調べたところCurlとかだと何かIFを指定するパラがあるようですが、横着ですが今のコードをあまり変えたくなくて。
- 322 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 17:42:34.88 ID:MuHdm1tt.net]
- >>309 じゃ、curl と同じ様にしてみたら?
# curl -I --interface eth0 www.yahoo.co.jp/ #python def message_api(request): req = requests.post('www.yahoo.co.jp/' \ --verbose \ --get
- 323 名前: \
--interface=‘eth0’ --data 'text=おはようございます' \ --data 'appkey=xxxxxxxxx') print(req) [] - [ここ壊れてます]
- 324 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 20:41:02.67 ID:Xsa0ee+G.net]
- >>299
pythonで作って学ぶデザインパターンみたいな物がほしいね オブジェクト指向が何となくわかっても使い方がよくわからん(´・ω・`)
- 325 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 21:16:21.39 ID:3FyMMC5r.net]
- 実践 Python 3
- 326 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 22:23:48.06 ID:rZ10GU5L.net]
- >>312
一回マジでしゃぶってもらえませんか
- 327 名前:デフォルトの名無しさん [2019/02/22(金) 00:02:47.01 ID:4wGjWw5c.net]
- >>304
手動で、 Aが来たら有線LAN[A]を繋げて Bが来たら有線LAN(A)を抜いて、有線LAN[B]を繋げる
- 328 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 00:57:21.96 ID:tDPXA70g.net]
- >>309
じゃあサブプロセス使ってcurlで実行しちゃえばいいんじゃないの?
- 329 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 01:10:21.20 ID:PLvaKLdQ.net]
- >>310
ヒドイw
- 330 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 13:47:21.78 ID:no4Nr2T0.net]
- NICを指定してrequestsの件、Pythonで出来ました。
requests_toolbeltというmoduleを組み込むことで、ちょっと搦め手ですが、source IPからNICを 指定してmountすることが出来ます。(ここには参考になる人はいなそうですがw) 以上。
- 331 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 21:06:15.39 ID:d1khp6TM.net]
- ええやん
- 332 名前:デフォルトの名無しさん [2019/02/23(土) 11:43:34.06 ID:+DV3f+Dk.net]
- 伊勢の名物
- 333 名前:デフォルトの名無しさん [2019/02/23(土) 12:26:45.82 ID:lot8ckD6.net]
- 国産のRuby叩かれすぎワロタ
- 334 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 12:40:42.89 ID:1QjCNYhv.net]
- このスレに限るなら、叩かれているのはほとんどRubyガイジのせいだろ
目の前をうろうろする羽虫みたいなもんだ
- 335 名前:デフォルトの名無しさん [2019/02/23(土) 12:48:40.53 ID:+DV3f+Dk.net]
- 自業自得
- 336 名前:デフォルトの名無しさん [2019/02/23(土) 14:39:26.54 ID:lot8ckD6.net]
- 劇場で数十年ぶりに復活したCity Hunter
冴羽獠の愛銃Python3xxと日本でも流行りのPython3の因果関係
- 337 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 09:29:08.59 ID:iJEnzY0p.net]
- デスクトップアプリはpythonとjavascriptどっちがいいんでしょうか
- 338 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:00:32.60 ID:QKZEiFxx.net]
- C#
- 339 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:02:11.33 ID:5XYYe3Vz.net]
- >>324
Electronがあるから今の流行りは圧倒的にJavaScript 昔ながらのWinアプリが作りたいんならC#
- 340 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:23:34.56 ID:iJEnzY0p.net]
- あっちこち手をつけるのも大変なのでjavascriptでやってみます
でもelectronッテメモリ悔いますよねなぜか
- 341 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:31:16.66 ID:8D34p5sx.net]
- なぜ32GBモデルにしなかったんだろ俺のバカバカ!ってね
- 342 名前:デフォルトの名無しさん [2019/02/24(日) 12:49:35.63 ID:fR/HEchoE]
- コードの質問です。
sys.pathの各ディレクトリの関係図を辞書とリストによるツリーのような階層構造で 表現しようと試行錯誤してますが、まったくいいコードが書けませんorz 書ける方がいましたら教えてください。
【sys.path】 ['C:\\Users\\81802\\PycharmProjects\\PlayGround', 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip', 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37\\lib', 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv', 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv\\lib\\site-packages', 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv\\lib\\site-packages\\setuptools-39.1.0-py3.7.egg', 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv\\lib\\site-packages\\pip-10.0.1-py3.7.egg']
【表現したい形】 {'C:\\Users\\81802\\': [{'PycharmProjects\\PlayGround\\': ['', {'PycharmProjects\\PlayGround\\venv\\': ['', {'lib\\site-packages\\': ['
- 343 名前:setuptools-39.1.0-py3.7.egg',
'pip-10.0.1-py3.7.egg']}]}]}, {'AppData\\Local\\Programs\\Python\\Python37\\': ['', 'python37.zip', 'DLLs', 'lib']}]} [] - [ここ壊れてます]
- 344 名前:デフォルトの名無しさん [2019/02/24(日) 13:10:54.97 ID:fR/HEchoE]
- 329の【表現したい形】は一部誤り。正しくはこちらです。
【表現したい形】 {'C:\\Users\\81802\\': [{'PycharmProjects\\PlayGround\\': ['', {'venv\\': ['', {'lib\\site-packages\\': ['', 'setuptools-39.1.0-py3.7.egg', 'pip-10.0.1-py3.7.egg']}]}]}, {'AppData\\Local\\Programs\\Python\\Python37\\': ['', 'python37.zip', 'DLLs', 'lib']}]}
sys.pathのグループ分けをし、 【common_path】 ['C:\\Users\\81802', 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\81802\\PycharmProjects\\PlayGround', 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv', 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv\\lib\\site-packages'] は得ることまではできました。
- 345 名前:デフォルトの名無しさん [2019/02/24(日) 14:53:09.92 ID:YwY0sV++.net]
- >>324
python
- 346 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 15:01:02.77 ID:h7ByRKin.net]
- VBの一択だな
- 347 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:35:42.81 ID:57VgR7IR.net]
- >>328
そんなにメモリ喰うの?
- 348 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:24:23.04 ID:7HrBRrfk.net]
- >>333
win10だと16gだと足りないよ。 ソフトによるけど。
- 349 名前:デフォルトの名無しさん [2019/02/24(日) 17:33:29.69 ID:r06CB5Xe.net]
- 昔ながらのデスクトップPCやサーバー機みたいな拡張とパーツ交換自在な時代なら最初16GBでも後から増設できたのに今時のモバイルなプログラム環境は半田付けされていて購入後に構成変更できないから辛いね
- 350 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:41:27.91 ID:9Sd/QbRT.net]
- 交換式にしたらスペース食うからねえ。
モバイルでもメモリとストレージは変更出来るってのも既に過去の話だな。 完全に買った時に全て決まるようになってしまった。
- 351 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:51:55.81 ID:+6ZRRI/z.net]
- >>335 今時のPCでも、スロット数が少ないから、何年かしたらもうボードから買い換えるしか無いよ。
諦める事だな。 (全てが寿命に近づいてるから捨てる。) ただ、買った直後にそのPCで動かないのがあったら、諦めて別の方法を探った方が吉。
- 352 名前:デフォルトの名無しさん [2019/02/24(日) 20:14:36.77 ID:r06CB5Xe.net]
- PCはスマホやタブレット、2 in 1とかにコモディティ化&低価格化してきてるからブラックボックスで使い捨てになるのも仕方ないのかも
- 353 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 20:21:36.39 ID:+6ZRRI/z.net]
- >>338 もう何台もPCを自作してきたが、あとで拡張しようと思って作ってても、いざ拡張する時になると時代遅れで結局捨ててしまう。
だってメモリだって新しいメモリは使えないし、新しいCPUは使えないし、何が拡張だ。 ほとんど全てのパーツが寿命に近づいてるから全てを新しくした方が安心できる。 何度壊れて痛い目にあったことか。
- 354 名前:デフォルトの名無しさん [2019/02/24(日) 20:26:06.19 ID:iK4D+UQi.net]
- 横からだが、今時古いメモリやCPUでもそれほど違わん。
(最近はAMDのお陰で急速にコア数増えたが) 物欲抑えれば全然現役で行ける。 (それでも性能追うのが浪漫なのは否定せんが)
- 355 名前:デフォルトの名無しさん [2019/02/24(日) 20:35:10.14 ID:r06CB5Xe.net]
- IDEとOfficeとブラウザとテキストエディタとレタッチソフトとiTunesぐらいなら十分すぎるぐらいCPUは進化したけれど
4K以上の動画編集とかVRとかデスクトップ科技計算とかみたいなヘビーユースだとCPUもGPGPUも最先端を追うしかないね
- 356 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 20:39:21.47 ID:9Sd/QbRT.net]
- >>339
あるあるだな。 やはり買うときに思い切って買わないといかんな。 モニタやキーボードはタイミングずらす。車検が被らないように増車したりバイク買う感じ。
- 357 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 20:42:46.42 ID:rYs6roSD.net]
- >>339
>ほとんど全てのパーツが寿命 今年思い知った件 ほんと
- 358 名前:>>342だは []
- [ここ壊れてます]
- 359 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 22:22:06.63 ID:mG+2Y3tM.net]
- pythonのクラスメンバへのアクセスのことで質問です
クラスのメンバに次の2通りの方法でアクセスしたいのです。 (1)ピリオドを使ってアクセスする (2)辞書のようにアクセスする それぞれ単独では実現できるのですが、両方同時に成立させる ことが出来なくて困っています。 最初に(1)のために次のように実装してみます class Foo(): def __init__(self, x): sel.x = x @property def x(self): return self.x @x.setter def x(self, x): self.x=x これだとエラーになるためxを_xにすると上手くいきます しかしそうすると__dict__がxではなく_xをキーとしてしまうため def __getitem__ を実装してもキーはxではなく_xになるため f=Foo()とすると (1)のアクセスは f.x (2)のアクセスはf["_x"] ということになってしまうのです。 (1)も(2)も同じキーでアクセスできるように出来ないでしょうか?
- 360 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 22:28:23.99 ID:mG+2Y3tM.net]
- 追記ですみません
メンバ変数は値を更新した際に自動的に他の処理も呼びたいため setterを必要としています。
- 361 名前:デフォルトの名無しさん [2019/02/24(日) 22:34:22.09 ID:dOn5ud/R.net]
- x.setter()等の仕様がそうだから仕方ないんじゃ?
… def __init__(self, x): self._x = x … def get_x(self): self._x = _x x = property(get_x,set_x, del_x) やってないけど
- 362 名前:デフォルトの名無しさん [2019/02/24(日) 22:39:07.56 ID:dOn5ud/R.net]
- あるいは中に仕込むか
@x.setter def x(self, x): self.x = x self._x = x
- 363 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 22:43:09.76 ID:2N6WWWAR.net]
- うちsandybridgeだけど当面買い換える予定ないぞ
グラボは入れ替えたが
- 364 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:00:08.65 ID:LEqgxgt7.net]
- >>344
適当に辞書作ってsetattr,getattrをsetitem,getitemにマッピングすればOK Class Foo(): _dic = {} def __setitem__(self, key, val): self._dic[key] = val def __getitem__(self, key): return self._dic[key] __setattr__, __getattr__ = __setitem__, __getitem__ こうすれば f = Foo() f['x'] = 10 f.x でアクセスできる
- 365 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:10:04.15 ID:PZlQ37TI.net]
- >>349 なんか黒魔術みたいだな。
- 366 名前:デフォルトの名無しさん [2019/02/25(月) 00:15:42.13 ID:W+H8OHl9.net]
- いや、辞書への挿入で更新もしたいならそれが正しい
_xはデバッグ用途と思って更新を考えない簡略版で答えた
- 367 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:24:18.98 ID:PZlQ37TI.net]
- >>349 全く始めたばかりで何もわかっていないんどけど、みんながpython の内部を改良していくためには必要な情報だけど、こんな事をpythonユーザーに正式に開放してるの?
- 368 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:31:37.32 ID:LEqgxgt7.net]
- >>352
公式ドキュメントの組み込み関数にサンプルコードがあるよ でも自分が学んだのはエキスパートPythonプログラミングという本かな 公式ドキュメントも分かってしまえば分かりやすいけど、無機質な感じがして読みにくい
- 369 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:32:00.78 ID:uKYGHYXp.net]
- 「暗示するより明示せよ」
がpythonの設計思想のひとつだからな 別に珍しいことでもない LISPなんかはユーザーが自由に言語設計をいじれすぎて 無数の方言が作られているしな
- 370 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:38:04.31 ID:SRxcknzj.net]
- >>349
メンドクセーッ!
- 371 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:40:49.46 ID:PZlQ37TI.net]
- >>355 だよな。 言語仕様としてできないものはできないで良いだろ。 言語仕様じゃ無いんだろ?
黒魔術は闇の世界で使う技術。
- 372 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 02:53:38.38 ID:9+tyf5TU.net]
- いや、attr系やitem系操作するのは、
他の言語の演算子のオーバーロードと 同じ感じテイストづし、珍しくも無い。
- 373 名前:デフォルトの名無しさん [2019/02/25(月) 11:22:12.78 ID:Opp/wdL5.net]
- >>344
Hoge.__dict__ を作るだけでいける
- 374 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 20:13:54.92 ID:+kysiU+6.net]
- Python初学者どころかプログラム初学者なのですがそんな人にも使いやすいIDEはありますでしょうか?ググった所PyCharmやアナコンダなどがありましたが皆様の意見もご参考にさせて頂ければと
- 375 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 21:07:11.42 ID:Ey4Q/htY.net]
- 初心者こそpycharmを使うべし
タイポも変数のundefinedもpep違反も全部赤ペン先生で指摘してくれる
- 376 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 21:36:21.30 ID:dXFOGwmu.net]
- 有料版使ってる人いるのかな
- 377 名前:デフォルトの名無しさん [2019/02/25(月) 21:39:49.74 ID:h8G0r/CT.net]
- >>359
PyCharm、VisualStudio
- 378 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 21:48:25.21 ID:+kysiU+6.net]
- >>360>>560
PyCharmですかありがとうございます入れてみます Visual StudioはVScodeというものですよね?py以外も色々できると聞いて気になってはいたのですがPython3を使うには設定が必要で初心者にはしんどいと聞いて及び腰です、、
- 379 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 21:51:26.82 ID:+kysiU+6.net]
- 未来にレスしてしまった
>>362ありがとう御座います
- 380 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 22:51:43.04 ID:Huj6YV9p.net]
- Visual StudioとVisual Studio Codeは別物
前者がIDE、Codeはエディタ Codeの方は.pyを初回に読み込んだ時にpython拡張インストールした方がいいよと言われるので指示に従えばいいだけ
- 381 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 23:50:17.81 ID:+kysiU+6.net]
- なるほど別物なんですね
vsコミュニティとかもあってややこしいです 教えて頂いたVisual StudioとPyCharmを使えるようになってそれからアナコンダにステップアップして行きたいと思います
- 382 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 00:15:19.10 ID:hK50uex+.net]
- いやWindowsだといきなりAnaconda入れるのが一番無難で簡単で手っ取り早いぞ
そしてAnacondaは開発環境としてVSCodeを推奨してるからVSCodeおすすめ
- 383 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 00:26:09.34 ID:hKlKYH4W.net]
- 俺はVSCodeと素Pythonを押すね
Anacondaは最初は使わん機能ばっかだし
- 384 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 01:03:36.19 ID:6/9JHzaI.net]
- Winなのに素python+Atomの俺は圧倒的少数者だと分かった
- 385 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 01:12:55.28 ID:pkMMAEQe.net]
- アナコンダはジュピターノートで書くのはわかっていますがセルの仕様が独特、アナコンダ用のプロンプトがあるなどで初心者向けではないよと言われたのですがそうでもないのですか?
|

|