くだすれPython(超初心者用) その46【Ruby禁止】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/01/02(木) 15:56:54.08ID:ZUrZA+uS
当スレに★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公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/

〇前スレ〇
くだすれPython(超初心者用) その45【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1571188632/
661647
垢版 |
2020/02/14(金) 17:21:58.26ID:/S4vU3l9
>>659
>>660
ありがとうございます。すっきりしました。
バグですか。確かに配列内容を分割しただけでエラーが消えたりしてたので悩みました。
2020/02/14(金) 19:07:56.62ID:+2T2g9zy
要領悪いやつ
大人しくutf8宣言しときゃ動くんだからそうしろよ
お前なんかがvscodeのバグ発見したからって何になるんだ
時間のムダ
663デフォルトの名無しさん
垢版 |
2020/02/14(金) 19:13:36.39ID:x4GfXJj6
単に知的好奇心だろ
おまえみたいなIT土方にはわからんか
2020/02/14(金) 19:39:14.54ID:+2T2g9zy
全く知的ではない
ただの"何でvscodeだと上手くいかないのムキー"でしかない
その証拠にバグと分かったらもう投げ出してる
665デフォルトの名無しさん
垢版 |
2020/02/14(金) 19:44:06.77ID:x4GfXJj6
それがなんで証拠なんやろうか
バクについてまでは興味ないってだけやろうに
土方が偉そうに評価するな
2020/02/14(金) 19:56:12.57ID:+2T2g9zy
バグだったら仕方ない、
自分のせいじゃない、
よかったよかったあースッキリ。

どこに知的要素が存在するのか
667デフォルトの名無しさん
垢版 |
2020/02/14(金) 20:00:15.70ID:x4GfXJj6
知的好奇心のない奴は動けばいいやでuft8宣言して終わりだろうな
668650
垢版 |
2020/02/14(金) 20:19:25.00ID:+9NDg3r6
プログラマーが日本語のバグで時間を使うのは、馬鹿らしい。
Python は、日本語対応をやってない

Ruby なら、Cookpad・マネーフォワード・Ruby 開発とか、
日本人のメンテナーが、一杯いる
2020/02/14(金) 20:23:20.50ID:+2T2g9zy
>>667
だからそれで終わりでよい
知的な意味もなく自己満足のためにムダな時間費やす無能よりも幾らか使えると言っているのだ
670デフォルトの名無しさん
垢版 |
2020/02/14(金) 20:26:32.77ID:x4GfXJj6
IT土方は動けばいいだけだもんな
671デフォルトの名無しさん
垢版 |
2020/02/15(土) 00:24:05.85ID:GcRD3KfQ
True=1,False=0じゃなくて
IFで何行も書かなくても
Trueの時は1をかけて、Falseの時はマイナス1を掛ける方法ってありますか?
672デフォルトの名無しさん
垢版 |
2020/02/15(土) 00:33:48.85ID:NYbvjz3Y
普通は
*(1 if hoge else 0)
だろうな
hoge*1でもできるっぽいけど
673デフォルトの名無しさん
垢版 |
2020/02/15(土) 00:50:26.77ID:GcRD3KfQ
>>672
*(1 if hoge else -1)
で行けるんですね
ありがとうございます!
674デフォルトの名無しさん
垢版 |
2020/02/15(土) 00:52:40.95ID:NYbvjz3Y
よく読んでなくてすまん
675デフォルトの名無しさん
垢版 |
2020/02/15(土) 04:34:54.53ID:CrxoAXqf
>>671
hoge*2-1
2020/02/15(土) 07:03:08.25ID:1M8DJTak
>>675
Basicは三項演算子なかったからその手のコードよく見かけたな
Trueが-1だから-2*hoge-1とかにしないと駄目だけど
2020/02/15(土) 07:39:54.28ID:cl/r4jK1
*[-1,1][hoge]とか
2020/02/15(土) 08:44:35.96ID:lCqRUL4P
>>670
その通り
コマはコマらしく動いていればよい
679デフォルトの名無しさん
垢版 |
2020/02/15(土) 12:23:37.16ID:GcRD3KfQ
みなさん色々ありがとうございます
>>677
*[-1,1][hoge]なら短いし
1か−1を掛けてるのが一目でわかっていいですね。
2020/02/15(土) 12:33:06.53ID:Od0WFVIs
>>679
横からですまんが
この*は何?掛け算記号じゃないよな
681デフォルトの名無しさん
垢版 |
2020/02/15(土) 12:54:17.21ID:OeWG4QMt
どーでもよくて草
682デフォルトの名無しさん
垢版 |
2020/02/15(土) 13:02:49.71ID:GcRD3KfQ
>>680
>>671で-1か1を掛けたいと質問したので
*マークをつけてくれたんだと思います
2020/02/15(土) 13:09:52.19ID:a5tEBtfb
それはわたしの肛門だ
2020/02/15(土) 13:29:58.94ID:J1bovO5o
糞みたいな小手先のテクニック使うくらいなら潔く if else で書けや
2020/02/15(土) 14:48:11.69ID:cTwFsuY/
x * [-1, 1][hoge]ってことだと思うが
流石にこれはない

評価する変数にboolしか入らない状況なら
x * (hoge or -1) でいいんじゃないかと思うが
これだと何のためにやってるかわかりにくいので
通常のif else使って関数化したほうがいい気もする
2020/02/15(土) 22:11:51.52ID:L3zGf310
>>684-685
俺もそう思う。
元質問をしたPythonでの三項演算の表記を知らないレベルの人は
x * [-1, 1][hoge]やx * (hoge or -1) を嬉々として・どや顔して
使いそうだが
2020/02/15(土) 22:40:28.65ID:cl/r4jK1
[-1, 1][hoge]は0,1以外弾くから結構間違いが入り込みにくい実装なんだけどね。

まぁ、普通は三項演算子使うだろうな。
688デフォルトの名無しさん
垢版 |
2020/02/15(土) 23:35:32.08ID:GcRD3KfQ
質問ですが
def内で使う変数名を考えるのが面倒だし
後でどれがどれか分かるように
引数と同じ変数名にしてますが
問題ないですか???

グローバル変数はほぼ使ってないです。
2020/02/15(土) 23:49:52.90ID:robjZmR7
def addnumbers(a, b):
return a+b

a=10
b=5
print(addnumbers(a, b))

みたいな話?
なら別に問題はないけど。

引数じゃなくて関数内で宣言するローカル変数の話なら、頭に_をつけたりして外の環境をマスクしないようにしたほうがお行儀がいいけど。
690デフォルトの名無しさん
垢版 |
2020/02/16(日) 00:44:18.75ID:S0ZkinLG
>>689
そんな感じです
ありがとうございます
解説とかだと大抵名前変えてあるので
変えた方がいいのかと思い込んでいました
2020/02/16(日) 02:28:25.33ID:Q6srCXr2
>>690
動くか動かないという意味では動くから、同じであっても問題はない、というだけだぞ。
意味的に分かりやすく適切な名前をつけるべき。
2020/02/16(日) 09:01:43.73ID:17VZ7Cpd
>>690
> 変数名を考えるのが面倒
これは2年後にタイムマシンで過去の自分をブン殴りたくなるまでなおらんとおもうが
なおせるものなら早めになおしとけ

> 後でどれがどれか分かるように
この発想はただしい。
で、どうしたらいいのかについては>>691が書いてくれてる

つまり

考えるのが面倒だから、って理由で
引数の名前をaだのbだのにしておくのはやめておけ
2020/02/16(日) 09:35:32.63ID:xJ91WGrf
名前を考える時間がもったいない
スクリプト言語はいかに早く作り早く動かすかが命
一度動けば後は野となれ山となれ
2020/02/16(日) 10:19:55.17ID:1yJgvEz2
どうしても名前を考えるのがめんどくさいならば
注釈で変数の意味を書いておくという方法もある
典型的な変数の値も書いておくとなおよい
2020/02/16(日) 10:26:00.98ID:6foDUZHe
関数の分割と命名が適切ならローカル変数なんて全部一文字でいいよ
そんなことで読めなくなるような長い関数を書くな
2020/02/16(日) 11:27:23.03ID:17VZ7Cpd
>>695
2行目には禿同

>ローカル変数なんて全部一文字でいい
ここまでがんばる必要はない
2020/02/16(日) 11:28:24.01ID:17VZ7Cpd
>>693
そう思っていた時期もありました
まだならこれからなるか、或いはクビになるでせう
2020/02/16(日) 11:33:53.98ID:vdOGaRiC
Goはむしろ一文字変数と引数を推奨してるね
コードが十分に構造化されていれば、長い変数名はノイズになって逆に読みにくいってのは一理ある
2020/02/16(日) 12:08:56.63ID:KXHJAKTO
bad know howの固まりのようなスレだな
2020/02/16(日) 12:24:10.94ID:5YcuBhUR
689だけど無次元数を扱う場合はa,bとかm,nとかを使うな
ファイルディスクリプタならfd
ループインデックスはi,j,kとかix,iy
それ以外は英単語2〜3個を繋いで変数名にして
PandasのDataFrameやNumpy Arrayみたいに実質型のないものはアプリケーションハンガリアン
ローカル変数だと頭にアンダースコアをつける感じだな
701デフォルトの名無しさん
垢版 |
2020/02/16(日) 12:26:02.52ID:uPTaqoVN
雑魚はせめてリーダブルコードでも読んでからコメントして
2020/02/16(日) 12:37:40.11ID:KXHJAKTO
>>701
それな
2020/02/16(日) 13:00:47.06ID:17VZ7Cpd
「最善の名前とは読み手が誤解を招かないこと」って書いてないか?
704688
垢版 |
2020/02/16(日) 13:04:49.24ID:S0ZkinLG
ローカル変数名ですけど

例えば名古屋から広島の距離を計算するとして

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とか???
2020/02/16(日) 13:13:22.41ID:xJ91WGrf
>>704
やたら気にするけどどうしたの
仕事なら職場やプロジェクトのコーディングルールに従えばいいし
個人の趣味なら自分がわかりやすければそれでいいのよ
2020/02/16(日) 13:19:18.43ID:vdOGaRiC
>>704
まあ気持ちはわからないでもないが、慣れてくるとそのへんは問題にならなくなるから現時点でそんなに気にしなくていい
はっきり言って、同じものを多数の関数に引き回していること自体がヘタクソ
それを回避する方法は「こうすればいい」と教科書的に言えるものではなく設計センスの問題で、君にも自然にわかってくる
2020/02/16(日) 13:24:20.27ID:17VZ7Cpd
>>704
そのdefのはっそうは、正直よろしくないとおもう。

使いまわせないだろw

def kyori(from, to):
にすれば、使いまわせるだろw

でもって、
引数のあとの「:」を忘れるな

(PEPにも書かれてるらしいが)
1ミクロンでも他人に見せる予定があるコードならば、
「kyori」はやめて、和英辞書を引いて、distanceをチョイス。
さらにいえば、
距離を計算する函数なのだから
「def calc_distance」みたいな名前にしよう。
2020/02/16(日) 13:26:21.56ID:17VZ7Cpd
>>707修正
よろしくない: from, to
モアベター: from_point, to_point あるいは from_city, to_city とかとか
2020/02/16(日) 14:30:21.73ID:iNVxJNOu
関数定義や関数のことを`def`って呼ぶのちょっとモヤるんだけど一般的なのかな?

>defが増えていくったときに
>それぞれのdef内でも
>そのdefのはっそうは、正直よろしくないとおもう。
2020/02/16(日) 14:33:43.62ID:E60C1LrQ
namedtuppleのクラス継承って3.5.3じゃ無理なのですか?
無理ならバージョン何からできます?
2020/02/16(日) 14:46:40.85ID:Rlzwkt+8
>>709
pythonスレならまあわかるでしょ
ってレベルかと
2020/02/16(日) 15:03:54.06ID:17VZ7Cpd
>>709
なるほど
函数定義って言えばいいのか
なるほどなっとく

口語でdefの〜みたいに教えられて
正式名称しらなんだ感。
たぶん704もそうなんじゃないかと、エスパーしてみる。
2020/02/16(日) 15:08:15.16ID:17VZ7Cpd
>>710
綴りちがっとる
×tupple
〇tuple

from typing import NamedTupleがイケるのが3.6.1からなので、
たぶんそのへんからナンジャネーノ(適当)
714688
垢版 |
2020/02/16(日) 16:38:20.27ID:S0ZkinLG
>>705
趣味でやってるんですが
ほぼほぼ作ったのが後々改造できなくて
投げ捨てるはめになってるので
何とかしたくてって感じです

>>706
趣味なので自然と身につかないのです・・・

>>707
具体例ありがとうございます
気を付けます
2020/02/16(日) 16:53:49.03ID:17VZ7Cpd
>>714
> ほぼほぼ作ったのが後々改造できなくて
> 投げ捨てるはめになってる
www
わかるwwwww始めたばっかりの頃のあるあるwwwwwわかるwwwww


オライリーの
リーダブルコード
  ISBN-10: 4873115655
  ISBN-13: 978-4873115658
(あるいは
ビューティフルコード
  ISBN-10: 4873113636
  ISBN-13: 978-4873113630 )

買って読んでみたらー
中古でも安くなってないだけのことはあるでよー
2020/02/16(日) 17:07:16.29ID:05WBirzM
オブジェクトがコピーなのか現物なのか、調べるにはどうすればよいですか。または全て現物で渡すには?

1. クラスの初期化時に引数として渡してselfに格納
2.クラスのgetterメソッド返り値としてselfの値を返却する
3.手順2で得られた値を演算したものをクラスのsetterメソッド引数として渡してselfに再格納

1〜3まで全て現物でいてほしいのですが、どこかでコピーになってしまうようで同期しません。
2020/02/16(日) 17:11:30.05ID:05WBirzM
716、自分でも分かりにくいので追記です、

e = 1
a = Class1(e)
b = Class2(e)

tmp = a.getE()
tmp += 1
a.setE(tmp)

b.print()

このprintの結果が、2となって欲しいのです。
2020/02/16(日) 17:18:43.25ID:17VZ7Cpd
>>716-717
書き込む前に>>1

>オブジェクトがコピーなのか現物なのか、調べるには
id(オブジェクト)
↑これがオリジナルとコピーでは異なるので確認汁
2020/02/16(日) 17:44:48.94ID:05WBirzM
>>718
ありがとうございます。
原因わかりました。
716で書いてるeが実際はイミュータブルだったので、書き換える際にreplace呼んでid変わってたみたいです。
eを自作クラスに変えたら動きました。ありがとう
720デフォルトの名無しさん
垢版 |
2020/02/16(日) 19:45:43.91ID:w90VPIvZ
リーダブルコードでググったら英語版はタダで見れるのか
苦Cみたいなもんか?
721688
垢版 |
2020/02/16(日) 19:51:59.66ID:S0ZkinLG
>>715
調べてみます
ありがとうございます
722デフォルトの名無しさん
垢版 |
2020/02/16(日) 20:00:33.27ID:S0ZkinLG
このクラスの########から########の間を
書き換えて別の子クラスを作る方法を教えてもらえませんか?
リターンはなくて条件によってどんどん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
2020/02/16(日) 20:56:22.89ID:05WBirzM
class tijimi(coner)作ってsuperのinit呼んだ後にif文羅列じゃ駄目なの?
2020/02/16(日) 21:14:42.57ID:iNVxJNOu
>>722
>書き換えて別の子クラスを作る方法
継承してオーバーライドすること言ってるのかな?

それと
条件によってpをどんどん書き換えていくような仕様は
一般的にはものすごく悪い設計
バグりやすいしテストもしにくいので避けたほうがいい
2020/02/16(日) 21:47:49.06ID:17VZ7Cpd
>>720
>英語版はタダで見れる
なん・・・だと・・・・

まあいいや
日本語版書籍には訳者によるおまけがついてるらしいから・・・
726722
垢版 |
2020/02/16(日) 22:05:37.52ID:S0ZkinLG
>>724
たぶん、継承オーバーライドの事だと思います
よくわかってなくてすいません
pを書き換えていくのを直します
ありがとうございます

>>723
ありがとうございます
やってみます
2020/02/16(日) 22:59:10.36ID:5EL9p8ON
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
2020/02/17(月) 00:33:34.29ID:VGvKWI+b
リーダブルコードもコードコンプリートも読んだ上で700書いてるけどねえ
PEP8とかもそうだけど、知恵とルールを混同してしまう人が結構いる
2020/02/17(月) 02:53:30.28ID:DyKTwZyk
お前にはその両方が足りていない
730デフォルトの名無しさん
垢版 |
2020/02/17(月) 05:56:39.51ID:9Byn+CCQ
アンカも打てないのかよ
いちいち自分で辿らせるとかどんだけ構って欲しいんだ
2020/02/17(月) 07:12:48.06ID:a4xzah5x
>>727
endとか90年代かよダッサ無駄な記述乙
732デフォルトの名無しさん
垢版 |
2020/02/17(月) 07:47:39.40ID:wxeqwMT5
裏表紙のない本
ドアのないトイレ
キャップのないペットボトル
733デフォルトの名無しさん
垢版 |
2020/02/17(月) 11:57:31.26ID:xV6ZEvHF
Macなんですが元々入ってるPython2系をpython2で呼び出して
Python3系をpythonコマンドで呼び出す方法ってありませんか?
alias python="python3"
を設定してもpython2が使えなくなる代替案を探してる最中です
734デフォルトの名無しさん
垢版 |
2020/02/17(月) 12:37:38.00ID:m/x7HUx7
>>729
読んであれならヤバイ級だよなあ
735デフォルトの名無しさん
垢版 |
2020/02/17(月) 12:38:09.76ID:m/x7HUx7
エイリアスにフルパス入れちまえよ
736デフォルトの名無しさん
垢版 |
2020/02/17(月) 12:53:44.11ID:xV6ZEvHF
>>735
エイリアスで置き換えすることばかり考えてました、ありがとうございます
m(_ _)m
2020/02/17(月) 13:05:59.25ID:sUzH4s3p
>>731
トイレを使って水を流さない犯人を見つけた
2020/02/17(月) 13:31:47.59ID:y136Nw0W
>>733
pipだったり他のプログラムが使ってるpythonの依存ぶっ壊れるようなやり方すぎる。
dockeで隔離するか、pyenv, anaconda 使うなりする方が問題起きたときに復帰しやすいと思われる。
2020/02/17(月) 15:10:44.14ID:wzCOK5rA
>>733
ln -s /usr/bin/python /usr/local/bin/python2
ln -s /usr/local/bin/python3 /usr/local/bin/python
2020/02/17(月) 15:56:50.96ID:y136Nw0W
完全に環境ぶっ壊しにかかってんな。。カスだな。
741デフォルトの名無しさん
垢版 |
2020/02/17(月) 17:29:32.07ID:91EB+qlc
>>737
Rubyはスレチだから
2020/02/17(月) 19:14:02.33ID:A9t7x7q2
デフォルトの設定を変えたら、それを使っている無数のアプリがバグルw

OS の仕組みを学べ!
743デフォルトの名無しさん
垢版 |
2020/02/17(月) 20:02:52.96ID:4yysNtzR
呼ぶときはPython2ならpythonで、Python3はpyで呼べるようになってるだろ
方針としてpythonで呼ばれるのはPython2のままにするっていうのがあるし
2020/02/17(月) 20:03:49.54ID:4njBz49B
$ pip3 --version
bash: /home/xxx/.local/bin/pip3: そのようなファイルやディレクトリはありません
$ which pip3
/usr/bin/pip3

以下のページ通りにやったら直った

パッケージ更新インストール後にコマンドが実行できない場合の対処
https://qiita.com/vmmhypervisor/items/e846338b204061040957
2020/02/17(月) 21:27:41.44ID:EJ6dkZYZ
Python記事まとめ(毎日自動更新)
https://qiita.com/kamata1729/items/eaf1d7b945b3a61a4fdd
Qiita週間ストック数ランキング【自動更新】
https://qiita.com/kai_kou/items/180a91fd88dbbbd746f6
746デフォルトの名無しさん
垢版 |
2020/02/18(火) 00:00:11.54ID:o6M8r8f5
import numpy as np
a = np.array([1,2,3])
print(a.shape)

こうやると、
(3,)
と表示されますけど
この3の後ろにあるカンマは
どゆ意味なんでしょう?
不必要としか思えないのですが?
2020/02/18(火) 00:10:14.62ID:ObTpNy6/
tuple
同じ型が返されることに意味がある
(3,)と(3)で型を比べてみればいい
748デフォルトの名無しさん
垢版 |
2020/02/18(火) 00:17:31.22ID:o6M8r8f5
>>747
ありがとうございます。
型を比べると(3)はint、(3,)はtupleですね。
np.arrayのshapeをtuple型の同じ型にする、
ということですね?
749デフォルトの名無しさん
垢版 |
2020/02/18(火) 13:43:57.54ID:ZbgU3Gim
全然違うω
2020/02/18(火) 13:54:29.04ID:2AC9Ct1n
>np.arrayのshapeをtuple型の同じ型にする、
>ということですね?
日本語がおかしい、もしくは理解の仕方がおかしい。
「np.array の shape を print で確認したら、tuple 型で (3,) だった。」
くらいは書いてほしい。
751デフォルトの名無しさん
垢版 |
2020/02/18(火) 17:44:44.88ID:NpZig/vi
>>748
何が言いたいのかよくわからない
何と何が同じなの?
2020/02/18(火) 20:55:10.51ID:EFQS+VhN
新しいノートパソコン買ったけど使ってるやつpipして入れていくの面倒だな
2020/02/18(火) 22:11:49.35ID:kXXzWqPh
>>752
現行このスレの上の方か、前スレで
pipで既に入ってるものを全部txtに吐かせて
それを新しいPCにコピーして
新しいPCのコマンドプロンプトからpipに食べさせる方法レスした記憶
2020/02/18(火) 22:25:08.60ID:Sq+szhyd
>>752
コマンドをバッチファイルに記録しておくのおすすめ
何を入れたのかの備忘録にもなるし、クリーンインストール後にも一気に復帰可能
2020/02/18(火) 22:27:06.73ID:I7Q3zK/c
あーそういやエクセルにpip一覧作ってコピペって入れてたな
あれバッチにすればよかったのか!
2020/02/19(水) 00:22:18.64ID:67Zh1tMt
>>753で書いてた過去のレスの、要約したったど

てきとうな階層でコマンドプロンプト起動して
pip freeze > requirements.txt

できたtxtを次のPCの
これまたてきとうな階層に入れ、
そこからコマンドプロンプト起動して
pip install -r requirements.txt
757デフォルトの名無しさん
垢版 |
2020/02/19(水) 11:51:55.61ID:cGULNOoW
そしてcondaに感染
2020/02/19(水) 18:42:16.77ID:DTFko2h2
このコードについて質問です
https://github.com/TestStudio/usbmuxd/blob/master/python-client/usbmux.py

class MuxError(Exception):
   pass

raise MuxError("socket connection broken")

みたいな書き方がされていますが、なぜ何もしない(passだけする)クラスを作って使用しているのでしょうか?
2020/02/19(水) 18:45:07.19ID:RE1Trb9N
raiseだからじゃない
2020/02/19(水) 19:01:50.35ID:Um90NQYB
Ruby なら、StandardError を継承して、カスタム例外クラスを作るだけ!

class MyError < StandardError
def initialize( msg="引数なし" )
super
end
end

raise MyError #=> 引数なし (MyError)

raise MyError, "引数あり" #=> 引数あり (MyError)
2020/02/19(水) 19:32:54.08ID:TvNfUAFk
Exceptionを継承してるのだから何もしてないわけではない
既存の例外クラスをそのまま使わず新たな例外クラスを作ればexcept節で場合分けしやすくなる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。