X

くだすれPython(超初心者用) その52【まず1嫁】

レス数が1000を超えています。これ以上書き込みはできません。
2021/01/09(土) 05:22:25.24ID:IpHIsox4
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合は、
  表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。

【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので
  ↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 くだすれPython(超初心者用) その51【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1602896738/

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
2021/03/15(月) 20:48:13.18ID:qjY4XCPb
>>971
本人が一般的な定義だと思ってるんだからどうしようもないだろ
やんわり指摘したレス見て自省すればよかったのにな
2021/03/15(月) 23:44:25.76ID:Po+lVn5y
関数型∩オブジェクト指向 とか、
宣言型∩オブジェクト指向 とか、
具体的な言語実装の例はあるのかな?
オブジェクト指向でよく言われるオブジェクト指向たりうる要素が直感的には
割と手続き型に依存してるような気がするが、あまり深く考えたことないのでよくわからん
2021/03/15(月) 23:49:07.06ID:Po+lVn5y
>>968
C言語でオブジェクト指向というのは普通にあるでしょ。gtkとか最たるものじゃん。
糖衣構文はマクロぐらいしかないかもしれないけど。
2021/03/15(月) 23:57:52.44ID:M0xOqYlK
>>973
関数型は参照透過性がメリットなのに
クロージャーとかやるとオブジェクト指向と同じじゃん。
2021/03/16(火) 00:11:33.94ID:g8baptpk
参照透過性のメリットを実感できない
2021/03/16(火) 00:12:31.36ID:NvntMOXY
>>973
手続きが含まれたら手続き型らしいから
関数が含まれてたら関数型
オブジェクトが含まれてたらオブジェクト指向なんじゃねーの
知らんけど
2021/03/16(火) 00:16:11.47ID:Y5UwQrqj
CでADT使ってればすぐオブジェクト指向って言うやつも大差ない
2021/03/16(火) 00:56:17.98ID:6YThIMgd
じゃあオブジェクト指向と関数ベタ書き比較する時はなんて言えばいいんだ?
2021/03/16(火) 01:36:57.64ID:giEPecL9
>>979
ADTのことを言ってるなら名前の通り"抽象型を使って書く"とでも言えば?

抽象型を使ってればオブジェクト指向?
2021/03/16(火) 02:01:29.83ID:WgCwoiox
定義で揉めやすいのは名前が悪いから
それぞれ手続き中心指向、オブジェクト中心指向、関数中心指向に脳内変換しとけばどうでもよくなる

それぞれ直交した概念でもなければ排他的な分類でもない
2021/03/16(火) 03:45:18.19ID:6arf77iJ
言語の方が複合的なパラダイムに対応していても覚える頭が1ビットしかないから其れだと困るねん
2021/03/16(火) 04:14:50.86ID:K4E4Nbs9
宣言型∩オブジェクト指向は実験的prolog拡張実装がいくつかあった気がする。
関数型はオブジェクト指向と相性悪いつか関数型勢からは唾棄すべき害悪として忌み嫌われてる印象。
世の中でオブジェクト指向といったら実質99%は手続き型∩オブジェクト指向だと思う。
C++以前から、smalltalkからこのタイプだもん。
2021/03/16(火) 04:15:37.06ID:K4E4Nbs9
>>983>>973 宛て
2021/03/16(火) 07:21:55.10ID:PfTIXkDh
【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/
2021/03/16(火) 07:22:43.55ID:lT7Xpsz1
>>974
時代が違うでしょw
2021/03/16(火) 10:37:00.38ID:xULngIlE
>>981
確かに「〜型」という言葉で1ビット二元思考になるやつが多いのかも
「〜的」とでも訳しておけばよかったのに
2021/03/16(火) 11:20:57.40ID:XtVeGAkv
a = hoge()
a.hogeset(1)

こんな感じてコンストラクタと別メソッドで初期設定しなきゃいけないクソめんどい部品があるんたけど1行でやる方法ない?

a = hoge().hogeset(1)

イメージはこんな感じで書いてメソッド呼び出しつつ変数aにはオブジェクトhoge本体を収めたい(hogesetは何も返さない)
2021/03/16(火) 11:42:56.27ID:kT+EpOUV
>>988
そういうクラスを作ればいいだけじゃね?
990デフォルトの名無しさん
垢版 |
2021/03/16(火) 12:25:58.91ID:ja5zi908
オブジェクトhoge本体
991デフォルトの名無しさん
垢版 |
2021/03/16(火) 12:46:56.08ID:Zc215ysF
GUI部品でsetVisible(True)とかなら略しない方がいい
2021/03/16(火) 15:01:49.92ID:qZ3Xge1G
>>988
特に何もせず1行で書くのは無理じゃないかな

selfをreturnするようなデコレータを作って
各種set系のメソッドを上書きするか別名で定義してやれば1行で書けるようにはなる
やる価値があるかどうかは状況次第
https://techiedelight.com/compiler/?G6Nb
2021/03/16(火) 15:17:05.62ID:z+A8n8B9
3.8以降なら代入式でいいんじゃね
2021/03/16(火) 15:32:45.88ID:XtVeGAkv
>>991
わォエスパーかよちょっと違うけど
tkinterのボタン配置別メソでするのダルいんじゃあ〜

>>992
やっぱムリかぁ
でも2行で書くの負けな気がするから関数カマスことにしました (結局5行になってるのは知らない、たくさん置くし・・・。)
def my_hoge_create(param):
a = hoge()
a.hogeset(param)
return a

a = my_hoge_create(1)

>>993
めっちゃ興味あるけど3.5だからまた今度にするわ (進歩しないゴミ)
2021/03/16(火) 15:40:26.02ID:ZzxG4K64
>>993
えーこういうこと?
(a := hoge()).hogeset(1)

条件式とかの中ならありだと思うが2行でも書けるところに使うのは気持ち悪いな
2021/03/16(火) 15:57:44.34ID:RaDf8rd1
>>988
クラスメソッドでググれ
997デフォルトの名無しさん
垢版 |
2021/03/16(火) 17:09:12.14ID:CHhu1vGO
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)
2021/03/16(火) 17:24:18.02ID:Z3x27iQ0
mode="rt" if ".gz" in name else "r"
2021/03/16(火) 18:56:39.01ID:YZCX5YV2
func = gzip.open if name.endswith(".gz") else open
with func(name, mode="rt") as f:
read_file(f)
2021/03/16(火) 19:18:47.34ID:PfTIXkDh
【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 66日 13時間 56分 22秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況