1 名前:デフォルトの名無しさん [2020/01/02(木) 15:56:54.08 ID:ZUrZA+uS.net] 当スレに★Python以外のプログラミング言語での回答類を書くべからず★ ☆「Ruby では」「Rubyでは」をNGワード登録推奨 このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 ★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので ↓等のてきとうなソースコード用うpろだに貼ってきてください。 スクショをImgur等にうp といった 手抜き(クソ行為)禁止。 ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。 ◇Python公式サイト◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/ 〇前スレ〇 くだすれPython(超初心者用) その45【Ruby禁止】 https://mevius.5ch.net/test/read.cgi/tech/1571188632/
641 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 18:39:18.80 ID:Ure0FzdD.net] >>627 何を参考にコーディングしたらそれが生まれたのか純粋に知りたいw
642 名前:デフォルトの名無しさん [2020/02/13(Thu) 19:02:19 ID:qvECNN2e.net] 条件分岐の分かり易い書き方について教えてください 通常ではa=bで c=0の時はa=zで d=1の時はa=yというときに if c == 0: __a=z elif b==1: __a=y else : __a=b になりますがほとんどの場合a=bになって まれにa=y やa=zになるとすると a=bが最後に来るのはわかりにくい気がするんですが どうしてますか?
643 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 19:45:20 ID:n7qjy+CZ.net] >>634 ありがてえ!!
644 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 20:12:27 ID:Ure0FzdD.net] >>637 別に気にならないけど、前に持ってきたいなら 最初に無条件でa=bを記述 その後条件文を記述 にするかな
645 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 20:16:27 ID:Ure0FzdD.net] ちなみにそんなことよりも、自分がレビューするとしたら cが0でbが1の時は本当にa=zでいいのかとかが不安になるわ
646 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:36:32.33 ID:r7bSHOfr.net] >>637 通常ケースと通常でないケースという認識なんであれば 3つを並列に書くんじゃなくガード節を使ったりして通常ケースとそれ以外のケースを分離する def evaluate(b, c): ____if c == 0: ________return z ____if b == 1: ________return y ____return b
647 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:40:41.28 ID:zu6t+bqI.net] コメントにそう書いておく。
648 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:59:00.84 ID:n7qjy+CZ.net] pythonてSwitch文ないの?
649 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 22:08:31.25 ID:Gd0xgnoa.net] ない
650 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 23:45:35.00 ID:l+IDZGdn.net] まあ変数の真名と役割をコメントしてくれないと可読性の議論は出来ないよね 順番とか記述方法云々よりそっちが先
651 名前:636 [2020/02/13(木) 23:51:12.83 ID:qvECNN2e.net] >>639 条件が変わったら上書きしていくのもアリなんですね ありがとうございます 説明へtsくそですいません・・・ >>641 ありがとうございます こんな方法あるんですね >>642 コメントでの説明がへたくそすぎて 後で過去の自分を殴りたくなることが多いですorz
652 名前:デフォルトの名無しさん [2020/02/14(金) 13:14:33 ID:a5iC3cHy.net] >>637 カルノー図を覚えろ
653 名前:デフォルトの名無しさん [2020/02/14(金) 14:54:01.70 ID:/S4vU3l9.net] mac os 10.11.6 python 3.7.4 https://ideone.com/Mkhw9S ターミナルから上のスクリプトを実行すると以下のようなエラーがおきます。 VScodeから実行した場合は問題なく実行されます。 Non-UTF-8 code starting with '¥xe6' in file test2.py on line 2, but no encoding declared; https://ideone.com/D9Fkym 上のスクリプトはターミナルからも実行できます。 (リストの文字列の数のみの違いです) 以前はこんな感じのエラーは起きなかったのですが 原因がわかる方おられますか?
654 名前:647 [2020/02/14(金) 14:59:14.12 ID:/S4vU3l9.net] 自己レスです。 # coding: UTF-8を入れたらターミナルからも実行できましたが、 なぜリストの内容数とVScodeからだと問題無いのかがわかりません。
655 名前:デフォルトの名無しさん [2020/02/14(金) 15:27:13.81 ID:WtuYdkw5.net] atomic bomb
656 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 15:34:47 ID:+9NDg3r6.net] 「python non-utf-8 code starting with ' xe6'」で検索! どうせ、文字コードが異なるとか? BOM 無しUTF-8 で保存すれば? 漏れは、Windows 10, VSCode で、Ruby, JavaScript などを使うけど、 すべてのファイルを、BOM 無しUTF-8 だけにしている!
657 名前:647 [2020/02/14(金) 15:39:07 ID:/S4vU3l9.net] >>651 上下とも同じエンコーディング(BOM 無しUTF-8 )で保存しています。 リスト内の文字列は全て同じ文字列の繰り返しで、2種類のスクリプトは要素数のみの違いです。
658 名前:デフォルトの名無しさん [2020/02/14(金) 15:40:45 ID:WtuYdkw5.net] # coding: UTF-8 書いてなかったんだろ
659 名前:デフォルトの名無しさん [2020/02/14(金) 15:42:19 ID:WtuYdkw5.net] >>6
660 名前:647 [2020/02/14(金) 15:52:33 ID:/S4vU3l9.net] >>653 >>649で書いたように、# coding: UTF-8は入れてなかったのですが、 知りたいのは、以下の2点の理由です。 1.VScodeだと問題なく実行できる 2.リスト要素数の違いによるエラーの有無
661 名前:デフォルトの名無しさん [2020/02/14(金) 15:57:16 ID:WtuYdkw5.net] sys.getdefaultencoding() みろ
662 名前:647 [2020/02/14(金) 16:01:14 ID:/S4vU3l9.net] >>> sys.getdefaultencoding() 'utf-8'
663 名前:デフォルトの名無しさん [2020/02/14(金) 16:01:50 ID:WtuYdkw5.net] お前は言われたことしかできないんか? https://qiita.com/methane/items/6e294ef5a1fad4afa843
664 名前:647 [2020/02/14(金) 16:07:55 ID:/S4vU3l9.net] >>658 単にマウント取りたいだけなら返信不要です
665 名前:650 mailto:sage [2020/02/14(金) 17:08:51 ID:+9NDg3r6.net] >>655 VSCode では、Microsoft がPython の拡張機能も作っているし、 設定ファイルにでも、UTF-8 で起動するように書いてあるのだろう 一般的には、IDE などの統合開発環境は、親切
666 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 17:19:37 ID:EOtBZfN8.net] >>655 原因はバグ 対処は改行して1行のバイト数を減らすか 明示的にencoding指定をファイルの先頭に記述するか https://bugs.python.org/issue34979 VSCodeで実行できるのは>>660の書いてる通り何か設定してるからだと思われる 俺の環境ではVSCodeでも同じエラーが出る
667 名前:647 [2020/02/14(金) 17:21:58 ID:/S4vU3l9.net] >>660 >>661 ありがとうございます。すっきりしました。 バグですか。確かに配列内容を分割しただけでエラーが消えたりしてたので悩みました。
668 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 19:07:56 ID:+2T2g9zy.net] 要領悪いやつ 大人しくutf8宣言しときゃ動くんだからそうしろよ お前なんかがvscodeのバグ発見したからって何になるんだ 時間のムダ
669 名前:デフォルトの名無しさん [2020/02/14(金) 19:13:36.39 ID:x4GfXJj6.net] 単に知的好奇心だろ おまえみたいなIT土方にはわからんか
670 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 19:39:14 ID:+2T2g9zy.net] 全く知的ではない ただの"何でvscodeだと上手くいかないのムキー"でしかない その証拠にバグと分かったらもう投げ出してる
671 名前:デフォルトの名無しさん [2020/02/14(金) 19:44:06 ID:x4GfXJj6.net] それがなんで証拠なんやろうか バクについてまでは興味ないってだけやろうに 土方が偉そうに評価するな
672 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 19:56:12 ID:+2T2g9zy.net] バグだったら仕方ない、 自分のせいじゃない、 よかったよかったあースッキリ。 どこに知的要素が存在するのか
673 名前:デフォルトの名無しさん [2020/02/14(金) 20:00:15 ID:x4GfXJj6.net] 知的好奇心のない奴は動けばいいやでuft8宣言して終わりだろうな
674 名前:650 mailto:sage [2020/02/14(金) 20:19:25 ID:+9NDg3r6.net] プログラマーが日本語のバグで時間を使うのは、馬鹿らしい。 Python は、日本語対応をやってない Ruby なら、Cookpad・マネーフォワード・Ruby 開発とか、 日本人のメンテナーが、一杯いる
675 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 20:23:20 ID:+2T2g9zy.net] >>668 だからそれで終わりでよい 知的な意味もなく自己満足のためにムダな時間費やす無能よりも幾らか使えると言っているのだ
676 名前:デフォルトの名無しさん [2020/02/14(金) 20:26:32 ID:x4GfXJj6.net] IT土方は動けばいいだけだもんな
677 名前:デフォルトの名無しさん [2020/02/15(土) 00:24:05 ID:GcRD3KfQ.net] True=1,False=0じゃなくて IFで何行も書かなくても Trueの時は1をかけて、Falseの時はマイナス1を掛ける方法ってありますか?
678 名前:デフォルトの名無しさん [2020/02/15(土) 00:33:48 ID:NYbvjz3Y.net] 普通は *(1 if hoge else 0) だろうな hoge*1でもできるっぽいけど
679 名前:デフォルトの名無しさん [2020/02/15(土) 00:50:26 ID:GcRD3KfQ.net] >>673 *(1 if hoge else -1) で行けるんですね ありがとうございます!
680 名前:デフォルトの名無しさん [2020/02/15(土) 00:52:40 ID:NYbvjz3Y.net] よく読んでなくてすまん
681 名前:デフォルトの名無しさん [2020/02/15(土) 04:34:54 ID:CrxoAXqf.net] >>672 hoge*2-1
682 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 07:03:08.25 ID:1M8DJTak.net] >>676 Basicは三項演算子なかったからその手のコードよく見かけたな Trueが-1だから-2*hoge-1とかにしないと駄目だけど
683 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 07:39:54.28 ID:cl/r4jK1.net] *[-1,1][hoge]とか
684 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 08:44:35.96 ID:lCqRUL4P.net] >>671 その通り コマはコマらしく動いていればよい
685 名前:デフォルトの名無しさん [2020/02/15(土) 12:23:37 ID:GcRD3KfQ.net] みなさん色々ありがとうございます >>678 *[-1,1][hoge]なら短いし 1か−1を掛けてるのが一目でわかっていいですね。
686 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 12:33:06.53 ID:Od0WFVIs.net] >>680 横からですまんが この*は何?掛け算記号じゃないよな
687 名前:デフォルトの名無しさん [2020/02/15(土) 12:54:17.21 ID:OeWG4QMt.net] どーでもよくて草
688 名前:デフォルトの名無しさん [2020/02/15(土) 13:02:49.71 ID:GcRD3KfQ.net] >>681 >>672 で-1か1を掛けたいと質問したので *マークをつけてくれたんだと思います
689 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 13:09:52.19 ID:a5tEBtfb.net] それはわたしの肛門だ
690 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 13:29:58.94 ID:J1bovO5o.net] 糞みたいな小手先のテクニック使うくらいなら潔く if else で書けや
691 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 14:48:11.69 ID:cTwFsuY/.net] x * [-1, 1][hoge]ってことだと思うが 流石にこれはない 評価する変数にboolしか入らない状況なら x * (hoge or -1) でいいんじゃないかと思うが これだと何のためにやってるかわかりにくいので 通常のif else使って関数化したほうがいい気もする
692 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 22:11:51.52 ID:L3zGf310.net] >>685-686 俺もそう思う。 元質問をしたPythonでの三項演算の表記を知らないレベルの人は x * [-1, 1][hoge]やx * (hoge or -1) を嬉々として・どや顔して 使いそうだが
693 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 22:40:28.65 ID:cl/r4jK1.net] [-1, 1][hoge]は0,1以外弾くから結構間違いが入り込みにくい実装なんだけどね。 まぁ、普通は三項演算子使うだろうな。
694 名前:デフォルトの名無しさん [2020/02/15(土) 23:35:32.08 ID:GcRD3KfQ.net] 質問ですが def内で使う変数名を考えるのが面倒だし 後でどれがどれか分かるように 引数と同じ変数名にしてますが 問題ないですか??? グローバル変数はほぼ使ってないです。
695 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 23:49:52.90 ID:robjZmR7.net] def addnumbers(a, b): return a+b a=10 b=5 print(addnumbers(a, b)) みたいな話? なら別に問題はないけど。 引数じゃなくて関数内で宣言するローカル変数の話なら、頭に_をつけたりして外の環境をマスクしないようにしたほうがお行儀がいいけど。
696 名前:デフォルトの名無しさん [2020/02/16(日) 00:44:18.75 ID:S0ZkinLG.net] >>690 そんな感じです ありがとうございます 解説とかだと大抵名前変えてあるので 変えた方がいいのかと思い込んでいました
697 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 02:28:25 ID:Q6srCXr2.net] >>691 動くか動かないという意味では動くから、同じであっても問題はない、というだけだぞ。 意味的に分かりやすく適切な名前をつけるべき。
698 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 09:01:43 ID:17VZ7Cpd.net] >>691 > 変数名を考えるのが面倒 これは2年後にタイムマシンで過去の自分をブン殴りたくなるまでなおらんとおもうが なおせるものなら早めになおしとけ > 後でどれがどれか分かるように この発想はただしい。 で、どうしたらいいのかについては>>692が書いてくれてる つまり 考えるのが面倒だから、って理由で 引数の名前をaだのbだのにしておくのはやめておけ
699 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 09:35:32 ID:xJ91WGrf.net] 名前を考える時間がもったいない スクリプト言語はいかに早く作り早く動かすかが命 一度動けば後は野となれ山となれ
700 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 10:19:55 ID:1yJgvEz2.net] どうしても名前を考えるのがめんどくさいならば 注釈で変数の意味を書いておくという方法もある 典型的な変数の値も書いておくとなおよい
701 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 10:26:00.98 ID:6foDUZHe.net] 関数の分割と命名が適切ならローカル変数なんて全部一文字でいいよ そんなことで読めなくなるような長い関数を書くな
702 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:27:23 ID:17VZ7Cpd.net] >>696 2行目には禿同 >ローカル変数なんて全部一文字でいい ここまでがんばる必要はない
703 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:28:24 ID:17VZ7Cpd.net] >>694 そう思っていた時期もありました まだならこれからなるか、或いはクビになるでせう
704 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:33:53.98 ID:vdOGaRiC.net] Goはむしろ一文字変数と引数を推奨してるね コードが十分に構造化されていれば、長い変数名はノイズになって逆に読みにくいってのは一理ある
705 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 12:08:56.63 ID:KXHJAKTO.net] bad know howの固まりのようなスレだな
706 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 12:24:10 ID:5YcuBhUR.net] 689だけど無次元数を扱う場合はa,bとかm,nとかを使うな ファイルディスクリプタならfd ループインデックスはi,j,kとかix,iy それ以外は英単語2〜3個を繋いで変数名にして PandasのDataFrameやNumpy Arrayみたいに実質型のないものはアプリケーションハンガリアン ローカル変数だと頭にアンダースコアをつける感じだな
707 名前:デフォルトの名無しさん [2020/02/16(日) 12:26:02 ID:uPTaqoVN.net] 雑魚はせめてリーダブルコードでも読んでからコメントして
708 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 12:37:40 ID:KXHJAKTO.net] >>702 それな
709 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:00:47 ID:17VZ7Cpd.net] 「最善の名前とは読み手が誤解を招かないこと」って書いてないか?
710 名前:688 [2020/02/16(日) 13:04:49 ID:S0ZkinLG.net] ローカル変数名ですけど 例えば名古屋から広島の距離を計算するとして def kyori(nagoya,hirosima) ___length = nagoya-hirosima ___return length #東京からの距離 tokyo = 0 nagoya = 350 kyoto = 457 hirosima = 768 length = kyori() っていう感じですけど 意味があって分かり易いだと 一文字だと長さはまだlで分かり易いと思うんですが defが増えていくったときに それぞれのdef内でもまだ個性的な名前を付けた方がいいのですか??? length_kyoto_hirosimaとか???
711 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:13:22.41 ID:xJ91WGrf.net] >>705 やたら気にするけどどうしたの 仕事なら職場やプロジェクトのコーディングルールに従えばいいし 個人の趣味なら自分がわかりやすければそれでいいのよ
712 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:19:18.43 ID:vdOGaRiC.net] >>705 まあ気持ちはわからないでもないが、慣れてくるとそのへんは問題にならなくなるから現時点でそんなに気にしなくていい はっきり言って、同じものを多数の関数に引き回していること自体がヘタクソ それを回避する方法は「こうすればいい」と教科書的に言えるものではなく設計センスの問題で、君にも自然にわかってくる
713 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:24:20.27 ID:17VZ7Cpd.net] >>705 そのdefのはっそうは、正直よろしくないとおもう。 使いまわせないだろw def kyori(from, to): にすれば、使いまわせるだろw でもって、 引数のあとの「:」を忘れるな + (PEPにも書かれてるらしいが) 1ミクロンでも他人に見せる予定があるコードならば、 「kyori」はやめて、和英辞書を引いて、distanceをチョイス。 さらにいえば、 距離を計算する函数なのだから 「def calc_distance」みたいな名前にしよう。
714 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:26:21.56 ID:17VZ7Cpd.net] >>708 修正 よろしくない: from, to モアベター: from_point, to_point あるいは from_city, to_city とかとか
715 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:30:21.73 ID:iNVxJNOu.net] 関数定義や関数のことを`def`って呼ぶのちょっとモヤるんだけど一般的なのかな? >defが増えていくったときに >それぞれのdef内でも >そのdefのはっそうは、正直よろしくないとおもう。
716 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:33:43.62 ID:E60C1LrQ.net] namedtuppleのクラス継承って3.5.3じゃ無理なのですか? 無理ならバージョン何からできます?
717 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:46:40.85 ID:Rlzwkt+8.net] >>710 pythonスレならまあわかるでしょ ってレベルかと
718 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:03:54.06 ID:17VZ7Cpd.net] >>710 なるほど 函数定義って言えばいいのか なるほどなっとく 口語でdefの〜みたいに教えられて 正式名称しらなんだ感。 たぶん704もそうなんじゃないかと、エスパーしてみる。
719 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:08:15 ID:17VZ7Cpd.net] >>711 綴りちがっとる ×tupple 〇tuple from typing import NamedTupleがイケるのが3.6.1からなので、 たぶんそのへんからナンジャネーノ(適当)
720 名前:688 [2020/02/16(日) 16:38:20.27 ID:S0ZkinLG.net] >>706 趣味でやってるんですが ほぼほぼ作ったのが後々改造できなくて 投げ捨てるはめになってるので 何とかしたくてって感じです >>707 趣味なので自然と身につかないのです・・・ >>708 具体例ありがとうございます 気を付けます
721 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 16:53:49.03 ID:17VZ7Cpd.net] >>715 > ほぼほぼ作ったのが後々改造できなくて > 投げ捨てるはめになってる www わかるwwwww始めたばっかりの頃のあるあるwwwwwわかるwwwww オライリーの リーダブルコード ISBN-10: 4873115655 ISBN-13: 978-4873115658 (あるいは ビューティフルコード ISBN-10: 4873113636 ISBN-13: 978-4873113630 ) を 買って読んでみたらー 中古でも安くなってないだけのことはあるでよー
722 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:07:16 ID:05WBirzM.net] オブジェクトがコピーなのか現物なのか、調べるにはどうすればよいですか。または全て現物で渡すには? 1. クラスの初期化時に引数として渡してselfに格納 2.クラスのgetterメソッド返り値としてselfの値を返却する 3.手順2で得られた値を演算したものをクラスのsetterメソッド引数として渡してselfに再格納 1〜3まで全て現物でいてほしいのですが、どこかでコピーになってしまうようで同期しません。
723 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:11:30.05 ID:05WBirzM.net] 716、自分でも分かりにくいので追記です、 e = 1 a = Class1(e) b = Class2(e) tmp = a.getE() tmp += 1 a.setE(tmp) b.print() このprintの結果が、2となって欲しいのです。
724 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:18:43.25 ID:17VZ7Cpd.net] >>717-718 書き込む前に>>1 嫁 >オブジェクトがコピーなのか現物なのか、調べるには id(オブジェクト) ↑これがオリジナルとコピーでは異なるので確認汁
725 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:44:48.94 ID:05WBirzM.net] >>719 ありがとうございます。 原因わかりました。 716で書いてるeが実際はイミュータブルだったので、書き換える際にreplace呼んでid変わってたみたいです。 eを自作クラスに変えたら動きました。ありがとう
726 名前:デフォルトの名無しさん [2020/02/16(日) 19:45:43.91 ID:w90VPIvZ.net] リーダブルコードでググったら英語版はタダで見れるのか 苦Cみたいなもんか?
727 名前:688 [2020/02/16(日) 19:51:59.66 ID:S0ZkinLG.net] >>716 調べてみます ありがとうございます
728 名前:デフォルトの名無しさん [2020/02/16(日) 20:00:33.27 ID:S0ZkinLG.net] このクラスの########から########の間を 書き換えて別の子クラスを作る方法を教えてもらえませんか? リターンはなくて条件によってどんどんpを書き換えていく感じの内容です class coner: __def __init__(self): ____self.angle = 0.0 ____self.width = 0.0 #以下self.が沢山 __def tijimi(self): ##################################### ____if 0 <= self.angle < math.pi/3: ______#計算式色々 ______p = l ____if self.angle == 0 : ______#計算式色々 ______p=l ____#以下ifでangleを調べてpを上書きしていくif分沢山 ##################################################### ____if self.width == 50: ______#計算式色々 ______p=l ____if self.width == 80: ______#計算式色々 ______p=l
729 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 20:56:22.89 ID:05WBirzM.net] class tijimi(coner)作ってsuperのinit呼んだ後にif文羅列じゃ駄目なの?
730 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 21:14:42.57 ID:iNVxJNOu.net] >>723 >書き換えて別の子クラスを作る方法 継承してオーバーライドすること言ってるのかな? それと 条件によってpをどんどん書き換えていくような仕様は 一般的にはものすごく悪い設計 バグりやすいしテストもしにくいので避けたほうがいい
731 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 21:47:49 ID:17VZ7Cpd.net] >>721 >英語版はタダで見れる なん・・・だと・・・・ まあいいや 日本語版書籍には訳者によるおまけがついてるらしいから・・・
732 名前:722 [2020/02/16(日) 22:05:37 ID:S0ZkinLG.net] >>725 たぶん、継承オーバーライドの事だと思います よくわかってなくてすいません pを書き換えていくのを直します ありがとうございます >>724 ありがとうございます やってみます
733 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 22:59:10 ID:5EL9p8ON.net] Ruby なら、B はA から派生したクラスで、 派生クラスで、親クラスの同名のメソッドを上書きする(override)。 @ はインスタンス変数 class A def f( ) @x = 1 end end class B < A def f( ) @x = 2 end end p A.new.f #=> 1 p B.new.f #=> 2
734 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:33:34.29 ID:VGvKWI+b.net] リーダブルコードもコードコンプリートも読んだ上で700書いてるけどねえ PEP8とかもそうだけど、知恵とルールを混同してしまう人が結構いる
735 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 02:53:30.28 ID:DyKTwZyk.net] お前にはその両方が足りていない
736 名前:デフォルトの名無しさん [2020/02/17(月) 05:56:39.51 ID:9Byn+CCQ.net] アンカも打てないのかよ いちいち自分で辿らせるとかどんだけ構って欲しいんだ
737 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 07:12:48 ID:a4xzah5x.net] >>728 endとか90年代かよダッサ無駄な記述乙
738 名前:デフォルトの名無しさん [2020/02/17(月) 07:47:39.40 ID:wxeqwMT5.net] 裏表紙のない本 ドアのないトイレ キャップのないペットボトル
739 名前:デフォルトの名無しさん [2020/02/17(月) 11:57:31.26 ID:xV6ZEvHF.net] Macなんですが元々入ってるPython2系をpython2で呼び出して Python3系をpythonコマンドで呼び出す方法ってありませんか? alias python="python3" を設定してもpython2が使えなくなる代替案を探してる最中です
740 名前:デフォルトの名無しさん [2020/02/17(月) 12:37:38.00 ID:m/x7HUx7.net] >>730 読んであれならヤバイ級だよなあ
741 名前:デフォルトの名無しさん [2020/02/17(月) 12:38:09.76 ID:m/x7HUx7.net] エイリアスにフルパス入れちまえよ