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
762 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:52:35.69 ID:lwZTh4qp.net] >>739 プログラムこそ最高のドキュメントじゃ無いのかな? ルールから外れたブログラミングルールは、決して褒められたものでは無い。 Pythonがなんで、インデントを重視したか? 誰が見ても間違えない様にするためなんだよ。
763 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:53:19.46 ID:atnduDe4.net] >>738 関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。 お前はエスパーかw
764 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:00:48.16 ID:lwZTh4qp.net] i=1 j=2 k=3 def add(a=i,b=j,c=k): return a+b+c print(add()) # 6 ---- # こんなのより def add(a=0,b=0,c=0): return a+b+c i=1 j=2 k=3 print(add()) #0 print(add(i,j)) #3 print(add(i,j,k)) #6 #こっちの方が100倍マシ。 いくらドキュメントをどこかで作っても誰も読まないよ。 プログラムが大きくなればなるほどプログラムこそ最高のドキュメントなんだよ。
765 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:37:19.27 ID:WSwBoc7f.net] >>728 自演に思われそうかつ高次脳機能障害みたいな略の持ち上げはYAMETE! 数式的に妥当かは与り知らんけど、Pythonに変数のエイリアスは無いしね 古典的な静的型言語と違い、変数は実体への参照に過ぎないのもハマりがちな所 代入を除く変更ってのも色々語弊が有るな、実体に対する操作と表現するべきか >>737 んー…確かにドキュメントではその辺りが欠けているというか正式実装じゃない? 既に他者のPythonコードが読めるなら直接↓を見るとか、helpやpydocに掛けるなり https://github.com/asweigart/pyautogui/blob/master/pyautogui/_window_win.py 質問に対する愚直な答えは同モジュールのようなctypesでWindows APIを呼び出したりが基本になるだろうけど 既存ライブラリに無い操作を実装するに際しては、Microsoft Docsとかにマクロの具体的な定数が併記されてないと Windows SDKのC/C++ヘッダーも参照する事になるし、最終目標に対し言語や実現方法などが適切かも考えた方が良い
766 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 17:08:54.75 ID:QD5YmF9d.net] >>743 ありがとうございます。 URL参考にさせていただきます。 外部アプリの操作にPythonは向いてないのでしょうか。 私なりに調べたところPythonからpowershellを実行するのが一番簡単そうだと思いました。 何かよい手があれば教えてください。
767 名前:デフォルトの名無しさん [2019/03/09(土) 17:35:51.96 ID:kfZA3URW.net] ねむくなるねこのすれ
768 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:17:19.14 ID:fMIUxryy.net] 初心者は寝てていいよ
769 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:23:12.70 ID:WSwBoc7f.net] >>744 もっと全体的な流れ、具体的な結果に依るので抽象的な回答になってしまうけど メモ帳へ文字入力というのが単にファイルの読み書きで済むなら迂遠だし エディタを機械的に操作したければ何ぞスクリプト対応のアプリを使用するとか 汎用的に外部アプリ全般を弄りたくて起動や開く程度ならsubprocessとかでも十分だけど 細かい所はWinAPIを直接呼ぶ必要が出てきてたり、大半がPowershellで構成されるなら これはもうPythonの学習というより、それらにすり替わり、置き換えられるよねという事 外部アプリ操作≒UI操作なら一般的とは思わないが、シェル代わりや橋渡しとしてはよく使われる Windows APIを呼び出す云々はSDKを使うネイティブ言語よりコンパイル諸々などお手軽な面はある
770 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:38:41.90 ID:GVs3bbIF.net] 例えば、Ruby から、powershell を呼び出して、クリップボード処理もできる。 str = `powershell Get-Clipboard` >でも、メモ帳のウインドウサイズを変更し、文字を入力したいのです 基本的に、他人が作ったアプリは、他のアプリから操作できない。 操作できるためには、操作用のAPI を公開して、その使用方法の文書も書く必要がある powershell は公開されているから、他のアプリからも使えるけど、メモ帳はどうかな? 例えば、君が作ったアプリを、他のアプリから操作できるように、 わざわざ操作用のAPI を公開して、その使用方法の文書を書いたりしないでしょ? 面倒くさいし そういうアプリは当然、他のアプリから操作できない
771 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:44:42.88 ID:C6v7oEvs.net] rubyとかいうゴミ言語はまったく関係ないな powershellを外部コマンドとして呼び出してるだけ これでrubyスゴい!になっちゃうのがrubyキチガイのキチガイたる所以
772 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:47:45.08 ID:3mUakWGD.net] そんなことよりなんで今更何のためにメモ帳に書くのかな。そっちの方が興味がある。
773 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:53:19.79 ID:QD5YmF9d.net] >>747 subprocessを使えば簡単な操作はできるんですね。 ありがとうございます。調べてみます。 本当は複雑なこともやってみたいと思ってましたが。。。 >>748 APIが公開されてないものは基本外部から操作は出来ないんですね。。。 ありがとうございます。勉強になりました。
774 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:57:06.37 ID:wl/Le+J5.net] さすがは、チームRWBY 相手の力を利用するとは、なかなかやるね!
775 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 20:21:03.99 ID:Pn/iQo1s.net] rubyはpycallとか作ってまで生き残りをはかってるからな これほど「始まる前に勝負着いてた」事例があるだろうか
776 名前:746 mailto:sage [2019/03/09(土) 20:40:28.25 ID:GVs3bbIF.net] Ruby では、こういう感じ。 Rubyから、powershell, clip コマンド(子プロセス)を呼び出す。 そして、このスクリプトをbat, vbs から呼び出すようにすれば、ダブルクリックでも起動できる クリップボード内の複数行文字列の、各行の先頭・末尾から、 連続する空白類を除去して、クリップボードに入れる str = `powershell Get-Clipboard` # クリップボードから取得 str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換 ary = str.each_line.map( &:strip ) # 空白類を除去 IO.popen( 'clip', 'w:cp932' ) do | clip | clip.print( ary.join "\n" ) # クリップボードへ書き戻す end
777 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:05:21.70 ID:QD5YmF9d.net] Pythonではできないのでしょうか?
778 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:36:12.11 ID:BnoVO+GE.net] >>754 PowerShellすごい!
779 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:51:05.13 ID:Asclh6VQ.net] >>755 スレ違い
780 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:52:20.14 ID:QD5YmF9d.net] >>757 ここはPythonすれですよw
781 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 23:13:21.29 ID:QD5YmF9d.net] 皆さん、相談にのっていただきありがとうございました。 SikuliというUI自動化ツールが優秀で思い通りの事ができました。 Pythonのスクリプトも使用できるのでとても満足です。
782 名前:デフォルトの名無しさん [2019/03/09(土) 23:51:29.47 ID:H6isrNei.net] Ruby禁止のRubyの単語に反応して書き込んでる説
783 名前:デフォルトの名無しさん [2019/03/10(日) 01:39:40.52 ID:/HGKNCBK.net] 副業解禁で激変する若者世代とマネージャー世代のキャリア観 www.businessinsider.jp/post-107782 フリーランスの職種20個の仕事内容と平均年収をわかりやすく解説 www.proof0309.com/entry/shokushu 時給1万円のバイトも。会社員向きのプチ副業を、“バイト芸人”が教える headlines.yahoo.co.jp/article?a=20190226-00127948-bizspa-bus_all 副業が「会社にバレる人」と「バレない人」の大差 headlines.yahoo.co.jp/article?a=20190303-00268007-toyo-bus_all 正社員の10%以上が副業 中には過重労働で体調崩す人も headlines.yahoo.co.jp/hl?a=20190227-00010000-wordleaf-bus_all 「副業で年2000万円稼ぐ男」に学ぶキャリア戦略 headlines.yahoo.co.jp/article?a=20190221-00266856-toyo-bus_all 加速する「副業社会」正社員の4割が「副業したい」 気になる収入はどれくらい? headlines.yahoo.co.jp/hl?a=20190218-00010001-danro-life おすすめ副業22選を現役フリーランスが解説【在宅も可能】 www.proof0309.com/entry/zaitaku-hukugyou 会社を辞めてフリーランスで働きたいあなたが知っておくべき10のこと www.businessinsider.jp/post-165731 フリーランスと会社員、働き方の根本的な差 広がる「雇用されない働き方」の課題とは何か toyokeizai.net/articles/-/263055 フリーランス人口は増える!今後は仕事もプロジェクト単位になる!? freelance.mts-career.com/population/ どのくらい稼げるの?フリーランスエンジニアの単価・報酬・年収の話 findy-code.io/engineer-lab/engineer-unitprice-income
784 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 09:53:19.84 ID:5/+zyaBC.net] >>754 死ね
785 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 10:33:29.03 ID:YmMiXd1Z.net] ガイジなど世間的には生まれた時点で死んだような存在だろネットでくらい許せ
786 名前:デフォルトの名無しさん [2019/03/10(日) 18:44:45.56 ID:uFsYqTSV.net] ruby禁止は浸透したがpowershellも禁止でおながいしまつ
787 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 19:04:53.21 ID:w00/E2cH.net] プログラマー40歳限界説
788 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 19:42:00.71 ID:XCpNHt+Q.net] ブックマークしてたpowershellのマニュアルのアドレスが変更されたみたいだ 誰か知りませんか?
789 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 19:50:01.61 ID:eNJkLSXg.net] スレチ
790 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 02:31:05.67 ID:Q8+quAlB.net] numpyでベクトルの配列の全要素に行列を掛けるにはどうしたらいいでしょ? やりたい事は vec=[[0,0],[1,1],[2,2]...] mat=[[0,1],[1,2]] result=[m & v for v in vec] こんな感じです
791 名前:デフォルトの名無しさん [2019/03/11(月) 05:21:09.87 ID:pTTv+VC9.net] mat@vec
792 名前:デフォルトの名無しさん [2019/03/11(月) 05:23:59.55 ID:pTTv+VC9.net] vecの作り方によっては mat@(vec.T)
793 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 07:42:02.40 ID:R4ZESWdO.net] pythonできればc#もできますか? pythonでゲームと、c#でwindowsのソフト両方を使ってますわ
794 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 08:49:44.07 ID:Rf81Fxun.net] フォルダを空にしようと思いましたが、うまく行きません shutil.rmtree(args.sample_dir) os.mkdir(args.sample_dir) os.mkdir(args.sample_dir)の部分で PermissionError: [WinError 5] アクセスが拒否されました。: 'test/sample_img' というエラーが出ます ディレクトリが消えているので shutil.rmtree(args.sample_dir) はうまく行っているようです このやり方はあまり良くないのでしょうか?
795 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 08:50:31.50 ID:IpMePMuQ.net] >>770 すみませんミスタイプしてました。求めたい結果は result=[mat@v for v in vec] ですね
796 名前:デフォルトの名無しさん [2019/03/11(月) 12:16:20.15 ID:hfHU2O5u.net] >>773 forいらんで
797 名前:デフォルトの名無しさん [2019/03/11(月) 12:19:13.01 ID:hfHU2O5u.net] こういうことかな (mat@(vec.T)).T
798 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:11:44.97 ID:mNeqJkGU.net] >>772 os.mkdirは途中に存在しないフォルダがあるとエラーしてしまうので 「os.makedirs()」をつかってみそ
799 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:33:25.52 ID:pvnV5rIH.net] inputした数字をそれぞれリスト化(aリスト,bりスト)したい。 入力(1行目は入力回数) 3 100 2 3 42 52 63 出力 [100, 3, 52] [2, 42, 63] 自分が作成したコードはinputをrangeで回してますが、inputを内包表記で1行で済ませる方法が分かりませんでした。 内包表記・関数でもうすこし短く出来ませんか? cunt = int(input()) a_list = [] b_list = [] for i in range(cunt): a,b = [int(x) for x in input().split()] a_list.append(a) b_list.append(b) print(a_list,b_list)
800 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:36:22.93 ID:mNeqJkGU.net] >>777 >>422
801 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:38:42.78 ID:mNeqJkGU.net] とちゅうでおくってしまった >>422 がイイ(・∀・)こといってる気がするんだが なんとか利用できないかな
802 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 19:53:46.76 ID:iNskGddB.net] count = int(input()) temp = [None for x in range(count)] for i in range(count): temp[i] = input().split() else: a_list = [int(x[0]) for x in temp] b_list = [int(x[1]) for x in temp] print(a_list,b_list) というかコードを書く前にcuntを辞書で引け 話はそれからだ
803 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 19:57:35.25 ID:PGatxMde.net] クリトリスですか?なるほど…
804 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 20:39:01.91 ID:mSdvFdhb.net] print(*map(list, zip(*[map(int, input().split()) for i in range(int(input()))])))
805 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 21:57:53.69 ID:pvnV5rIH.net] セクハラ通り越して放送禁止用語レベルだったんですね >>780 こういうループの発想が湧きませんでした 参考にさせて頂きます >>782 コレ使ってみます 関数1個1個はナントナク分かりましたが、何重も連なると自分のレベルは難しいです 時間かけて解読してみます >>779-782 皆さんありがとうございました
806 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 22:05:12.11 ID:IpMePMuQ.net] >>775 ディメンションがちゃうで言われますね つまり座標配列全てにアフィン変換したいって事なんですがnumpyじゃ無理なんかな?
807 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 23:20:05.55 ID:GdRfR4uu.net] Ruby のArray#zip, transpose で、配列・行列の縦横変換できる。 zip の引数に、幾つかの配列(配列のリスト)を指定できる p [1,2,3].zip([4,5,6], [7,8,9]) # => [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
808 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 23:38:19.16 ID:qe97t/2K.net] >>785 グロ
809 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 23:54:59.52 ID:0HIo0fVP.net] >>780 >コードを書く前にcuntを辞書で引け ゆとり教育では辞書使うなんて難易度の高いことはしない
810 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 00:08:58.95 ID:KQFIYqiK.net] >>784 "アフィン変換 numpy"でググればなんか希望の物が引っかかるんじゃないのか numpyを使ってアフィン変換をするライブラリなんかは誰か作っている気がする
811 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 01:19:04.31 ID:Tg1PBlZE.net] >>780 cunt 辞書ひいた。 笑っちゃったよ。 1. a stupid or unpleasant person 2. -> HUMAN a woman's vagina =sex organ
812 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 01:43:49.00 ID:Tg1PBlZE.net] >>789 同じロングマンなんだけどなんかニュアンスが違うな。 cunt kʌnt 名 C《タブー》 1 《女性性器を意味する非常に侮蔑ぶべつ的な語》 2 《嫌悪感・怒りを感じる女性に対して用いる非常に侮蔑ぶべつ的な表現》 大辞林 カント 女性の性器。 コトバンク [名]((卑)) 1 たちの悪いやつ;いやなやつ Don't be a silly cunt. くだらんことを言うな. 2 女性器;性的対象としての女性, あばずれ;性交. [オランダ語kunte←フランス語] Oxford vulgar slang 1 A woman's genitals.(性器) 1.1 An unpleasant or stupid person. Origin Middle English: of Germanic origin; related to Norwegian and Swedish dialect kunta, and Middle Low German, Middle Dutch, and Danish dialect kunte.
813 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:29:06.26 ID:Le2Xhtue.net] 引数のイメージなんですが、引数は材料で、材料を関数で調理器にかけるイメージでしょうか?
814 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:30:30.49 ID:F9OOaHwl.net] 戻り値は?
815 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:33:21.35 ID:c3A0Gx7w.net] ひき肉を作る機械のイメージでええんやないの 上に入れる肉が引数、機械が関数、出てきたひき肉が戻り値
816 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:36:33.66 ID:rf03pH6k.net] 引数に肉しか入れてないのに勝手に台所のコショウが減ったり電気使われたりするのが副作用
817 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:39:17.36 ID:Le2Xhtue.net] ひき肉が引数、調理器が関数、バーグが戻り値 ありがとうござ
818 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:41:44.81 ID:Le2Xhtue.net] selfの意味ってなんですか? 単に関数を作成したときにデフォルトでついてくる引数という感じでしょうか。 だとしたらなんのためにですか? 読んでみたんですが、イマイチイメージが、、、
819 名前:デフォルトの名無しさん [2019/03/12(火) 12:52:43.68 ID:uvkzn3tS.net] >>796 selfは関数ではなくクラスのメソッドに付ける Javaのthisみたいなもので、メソッドを呼び出したオブジェクト自身を受け取るための引数 メソッド内でメンバ変数を参照したり別のメソッドを呼び出したりする時にself.〜 として使う
820 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:58:27.33 ID:R/A89vkp.net] 横からすいません self、self以外を指定することはあるのでしょうか?
821 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:11:28.09 ID:rdaDEiid.net] >>798 慣例的なもので言語制約ではない、が補完などに影響するかも クラスメソッドではクラスが割り当てられるのでclsが使われる
822 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:16:23.13 ID:rf03pH6k.net] hoge.myMethod(fuga, piyo) myMethod(hoge, fuga, piyo) みたいなイメージ
823 名前:デフォルトの名無しさん [2019/03/12(火) 13:20:45.17 ID:6Uu2j9Xc.net] >>784 馬鹿には無理
824 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:36:24.76 ID:R/A89vkp.net] >>799 ありがとうございます
825 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:58:38.98 ID:c3A0Gx7w.net] そもそも何でメソッドの引数にオブジェクト自身を渡すんやろうか obj.method()みたいに呼び出すなら、どのオブジェクトをメソッドに渡すかわ明らかなんだから、省略できそうなのに
826 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 14:09:51.25 ID:R/A89vkp.net] >>803 こういう渡し方をする言語、python以外にもあるんでしょうか
827 名前:デフォルトの名無しさん mailto:s
[] [ここ壊れてます]
828 名前:age mailto:2019/03/12(火) 14:19:35.49 ID:rdaDEiid.net [ >>803 それはPythonのオブジェクト指向の実装方法とか基本理念によるもの、属性解決については https://docs.python.org/ja/3/howto/descriptor.html#definition-and-introduction self.meth()とcls.meth(self)の等価性を明示するみたいな論調も記憶にあるが公式なソースは忘れた ] [ここ壊れてます]
829 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 14:39:35.59 ID:5JRn7Uik.net] >>804 perl
830 名前:803 mailto:sage [2019/03/12(火) 14:48:12.21 ID:rdaDEiid.net] selfに対する直接の説明としてはちょっとアンカーが適切ではないか https://docs.python.org/ja/3.5/howto/descriptor.html#functions-and-methods 「関数に基づく環境の上に構築」って所がミソやね、後付けと言われる所以
831 名前:デフォルトの名無しさん [2019/03/12(火) 16:34:54.17 ID:8KtfShI4.net] >>804 tcl
832 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 16:40:24.68 ID:Le2Xhtue.net] >>797 よくわからないけどありがとうひき肉おじさん
833 名前:デフォルトの名無しさん [2019/03/12(火) 17:17:23.48 ID:8KtfShI4.net] わからないならレスしないでくださいうざいだけです
834 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 17:19:11.50 ID:Le2Xhtue.net] インスタンス作成っていうのはメモリ上に領域を確保する作業ってことでいいんでしょうか。
835 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 17:21:39.56 ID:zkYMqbGV.net] なにそれ 他のコード作業だとメモリを使用しないとでもw
836 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 17:23:18.47 ID:zkYMqbGV.net] クラス定義内に大量の関数定義を入れると、そのクラスがインスタンス化されたときに、インスタンスに自我意識が生まれます
837 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 18:13:57.38 ID:rf03pH6k.net] 俺も3食インスタンスラーメンです
838 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 19:11:13.53 ID:qLQHaQxA.net] selfはあってもなくても、どっちでも よかったかもしらんが、 クラス外の普通の関数でも、いきなり クラスのフレンド関数のようにしやすいといった、 モンキーパッチ的な利点もあるし、 一長一短。
839 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 05:29:22.97 ID:Z4mQGBB0.net] pythonのselfの超簡単なサンプルを教えてください 調べてるんですが、わかりにくくて、、、
840 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 06:11:09.78 ID:nAhixTo8.net] サンプルって…メソッドならインスタンスを受け取るために必須なだけだ 倣うほどの規範は無いと思うけど、オブジェクト指向が理解できてないの?
841 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 07:18:13.39 ID:zpkiSS8W.net] >>817 オブジェクト指向の理解というよりPythonの仕様の気が・・ 横なんですけど、例えばあるクラスを継承したクラスがいくつかあって、それぞれで同じメソッドをオーバーライドしている時、Pythonは渡されたインスタンスを見てどのメソッドを呼び出すか決めているんですか? つまりインスタンスとメソッドは別々に管理されていて、呼び出す時にインスタンスとメソッドは結び付けられるとか。
842 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 07:28:44.40 ID:Z4mQGBB0.net] >>817 オブジェクト指向はなんとなく インスタンスを受け取るというのはよくわからないのですが
843 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 07:44:07.11 ID:zpkiSS8W.net] >>819 私もです、>>807 さんのリンクや後付け・・から思うに、 オブジェクト内にメソッドがあるのではなく、メソッドはオブジェクトの外に関数としてあって、その関数に対して「このオブジェクトのメソッドの様に振る舞え」と指示しているのかな、と感じました。
844 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 10:42:08.19 ID:Nk0VyZbv.net] 配列hogeを作成し、 print(hoge)を実行した時、[1. 2. 3. 4. 5.]の様に 数字にピリオドがついた時は浮動小数点型の配列なのでしょうか? 浮動小数点型の場合、整数型の配列にする方法はありますでしょうか?
845 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 10:51:02.04 ID:x5gb1xdG.net] >>821 list(map(int,hoge))
846 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 11:00:58.72 ID:Nk0VyZbv.net] >>822 ピリオドが無くなりました! ありがとうございます
847 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 11:08:04.74 ID:Z4mQGBB0.net] class Cat(object): def __init__(self, name, weight): self.name = name self.weight = weight このコードのselfはどういう意味なんでしょうか? 猫というオブジェクトの属性を表現しているクラスのようです
848 名前:デフォルトの名無しさん [2019/03/13(水) 11:19:10.70 ID:Y4yR4bDO.net] >>798 二項演算ならself使うと分かりにくいのでアリ、アプリカンド/アプリケータなど self/other派も居るが 有名ライブラリだとmpmathがctx(計算の文脈、精度とか)渡してるね
849 名前:デフォルトの名無しさん [2019/03/13(水) 11:20:56.58 ID:Y4yR4bDO.net] x/yも見掛けるな 同種同士の同等な二項演算の定義に主体が入り込むのは気持ち悪いと思うよやっぱ
850 名前:デフォルトの名無しさん [2019/03/13(水) 11:34:37.37 ID:imKqJmF7.net] >>824 Cat(‘neko’, 5) などと書くと__init__が呼び出されてselfには作成されたCatのインスタンスが渡される つまり c = Cat(‘neko’, 5) とした時cとselfは同じものを指す
851 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 12:31:52.80 ID:Z4mQGBB0.net] selfの意味がいまいち理解できていないのですが、引数の設定されたクラスや関数自身を表すということですよね で、self自体を出力してみました class classname: def defname(self): print(self) s =classname() s.defname() <__main__.classname object at 0x03EE2F30> selfを設定しているのは関数なのですが、これでは関数自身ではなく、クラス自身ではないですか? また、これはどういったときに役立つのですか? 環境はidleです >>827 ありがとうございます 読み解いてみます
852 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 12:44:16.23 ID:Ux8DzXrZ.net] >>828 >引数の設定されたクラスや関数自身を表すということですよね うん 5ちゃんでは インデント(連続してる半角スペース)が消えちまうので めんどうでも全角スペース使って書きなおす(半角スペースを全角スペースに置換でおk)か 1に書いてあるような、ソースコード貼る専用のうpろだにうp
853 名前:デフォルトの名無しさん [2019/03/13(水) 13:38:08.75 ID:imKqJmF7.net] >>828 メソッドの中から別のメソッドを呼びたい時にselfが無いと詰む
854 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 15:00:34.67 ID:Ux8DzXrZ.net] >>828 2系でやったら違う結果になるぞ
855 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 15:57:20.28 ID:nAhixTo8.net] >>828 はい、いいえ。通常defで定義した関数自身を第1引数が表す事はありませんし ついでにクラスへ定義した関数は、メンバー関数あるいはメソッドと呼びます またクラス(型)も渡されていません、それはインスタンス(実体)です オブジェクトとも呼ばれますけど意味が文脈に左右されるので置いといて クラスメソッド(@classmethod)と修飾したときは、クラスが渡されます 文字列でいうならクラスはstr、'ABC'など具体的な物がインスタンスに相当し その長さなどがインスタンスの属性と言えます(Pythonだと関数で取得するが selfは>>797 でも回答されるように他言語の(暗黙的に参照可能な)thisと同等で その宣言の必要性は>>807 に対する>>818 や>>820 の理解…は齟齬が生じる所もあるが 概念的にはメソッドだけども実装的には関数なので、()と呼び出された時ではなく 実体から関数が.で属性参照された時に、結び付けられたメソッドが生成されます 一連のレスからすると、引数が表すものに関数自身(callee)が出てくる辺り メソッド以前に関数の定義・呼び出し自体の理解も怪しいのではなかろうか? 関数の操作対象として構造物というか実体が第1引数に渡されているのだが…
856 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 16:27:27.93 ID:M+m6pFpm.net] はい(いいえ)
857 名前:デフォルトの名無しさん [2019/03/13(水) 17:46:31.02 ID:h9UFHds/.net] そやで、ちゃうで
858 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 17:48:54.93 ID:MhYZY5Aj.net] はいいいえ
859 名前:デフォルトの名無しさん [2019/03/13(水) 18:46:52.20 ID:gkV5NrkZ.net] ちゃうちゃうちゃうんちゃう
860 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 19:03:05.32 ID:jL6M634A.net] def yes(arg= None): ____print()
861 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 19:58:39.06 ID:26FDLpbf.net] hoge = "ほげほげ!" if hoge == "ほげほげ": print("ほげほげ!) else: pinrt("げほげほ!")
862 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:00:19.07 ID:Ux8DzXrZ.net] >>838 ”がたりてない