くだすれPython(超初心者用) その52【まず1嫁】at TECH
くだすれPython(超初心者用) その52【まず1嫁】 - 暇つぶし2ch990:デフォルトの名無しさん
21/03/16 03:45:18.19 6arf77iJ.net
言語の方が複合的なパラダイムに対応していても覚える頭が1ビットしかないから其れだと困るねん

991:デフォルトの名無しさん
21/03/16 04:14:50.86 K4E4Nbs9.net
宣言型∩オブジェクト指向は実験的prolog拡張実装がいくつかあった気がする。
関数型はオブジェクト指向と相性悪いつか関数型勢からは唾棄すべき害悪として忌み嫌われてる印象。
世の中でオブジェクト指向といったら実質99%は手続き型∩オブジェクト指向だと思う。
C++以前から、smalltalkからこのタイプだもん。

992:デフォルトの名無しさん
21/03/16 04:15:37.06 K4E4Nbs9.net
>>984>>974 宛て

993:デフォルトの名無しさん
21/03/16 07:21:55.10 PfTIXkDh.net
【まず1嫁】くだすれPython(超初心者用) その53
スレリンク(tech板)

994:デフォルトの名無しさん
21/03/16 07:22:43.55 lT7Xpsz1.net
>>975
時代が違うでしょw

995:デフォルトの名無しさん
21/03/16 10:37:00.38 xULngIlE.net
>>982
確かに「~型」という言葉で1ビット二元思考になるやつが多いのかも
「~的」とでも訳しておけばよかったのに

996:デフォルトの名無しさん
21/03/16 11:20:57.40 XtVeGAkv.net
a = hoge()
a.hogeset(1)
こんな感じてコンストラクタと別メソッドで初期設定しなきゃいけないクソめんどい部品があるんたけど1行でやる方法ない?
a = hoge().hogeset(1)
イメージはこんな感じで書いてメソッド呼び出しつつ変数aにはオブジェクトhoge本体を収めたい(hogesetは何も返さない)

997:デフォルトの名無しさん
21/03/16 11:42:56.27 kT+EpOUV.net
>>989
そういうクラスを作ればいいだけじゃね?

998:デフォルトの名無しさん
21/03/16 12:25:58.91 ja5zi908.net
オブジェクトhoge本体

999:デフォルトの名無しさん
21/03/16 12:46:56.08 Zc215ysF.net
GUI部品でsetVisible(True)とかなら略しない方がいい

1000:デフォルトの名無しさん
21/03/16 15:01:49.92 qZ3Xge1G.net
>>989
特に何もせず1行で書くのは無理じゃないかな
selfをreturnするようなデコレータを作って
各種set系のメソッドを上書きするか別名で定義してやれば1行で書けるようにはなる
やる価値があるかどうかは状況次第
URLリンク(techiedelight.com)

1001:デフォルトの名無しさん
21/03/16 15:17:05.62 z+A8n8B9.net
3.8以降なら代入式でいいんじゃね

1002:デフォルトの名無しさん
21/03/16 15:32:45.88 XtVeGAkv.net
>>992
わォエスパーかよちょっと違うけど
tkinterのボタン配置別メソでするのダルいんじゃあ~
>>993
やっぱムリかぁ
でも2行で書くの負けな気がするから関数カマスことにしました (結局5行になってるのは知らない、たくさん置くし・・・。)
def my_hoge_create(param):
a = hoge()
a.hogeset(param)
return a
a = my_hoge_create(1)
>>994
めっちゃ興味あるけど3.5だからまた今度にするわ (進歩しないゴミ)

1003:デフォルトの名無しさん
21/03/16 15:40:26.02 ZzxG4K64.net
>>994
えーこういうこと?
(a := hoge()).hogeset(1)
条件式とかの中ならありだと思うが2行でも書けるところに使うのは気持ち悪いな

1004:デフォルトの名無しさん
21/03/16 15:57:44.34 RaDf8rd1.net
>>989
クラスメソッドでググれ

1005:デフォルトの名無しさん
21/03/16 17:09:12.14 CHhu1vGO.net
gzipか普通のテキストファイルかを名前で判別して読み込みたいんで下記のように書いてるんですが、read_fileがif/elseで2回出てくるのが冗長っぽいのでif/elseの後にread_file()をしようと思うとI/O operation closedとエラーが出ます。
with open後にインデント変えたので閉じられたたのかなと思うのですが、
gzipかそうじゃないかのファイルオブジェクトとやらをif文で決めた後に、1回の関数で処理するようなスマートな書き方出来ないものでしょうか?
現状
def read_file(f):
data = f.read()

name = 'hoge.txt.gz'
if '.gz' in name:
with open(name, mode='rt') as f:
read_file(f)
else:
with open(name) as f:
read_file(f)

1006:デフォルトの名無しさん
21/03/16 17:24:18.02 Z3x27iQ0.net
mode="rt" if ".gz" in name else "r"

1007:デフォルトの名無しさん
21/03/16 18:56:39.01 YZCX5YV2.net
func = gzip.open if name.endswith(".gz") else open
with func(name, mode="rt") as f:
read_file(f)

1008:デフォルトの名無しさん
21/03/16 19:18:47.34 PfTIXkDh.net
【まず1嫁】くだすれPython(超初心者用) その53
スレリンク(tech板)

1009:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 66日 13時間 56分 22秒

1010:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch