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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/02/04(月) 21:22:10.08ID:9MrdxUVg
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず

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

エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その40
http://mevius.5ch.net/test/read.cgi/tech/1542874174/


◆PythonのHome Page
http://www.python.org/

◆まとめwiki
ttp://python.rdy.jp/

◆Pythonのソースコードをそのまま5ちゃんにコピペすると
  インデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数を長めに指定しる。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
2019/03/09(土) 09:37:13.71ID:sGXnYTxg
from datetime import date
from datetime import timedelta

def offsetday(offset=0):
da=date.today() + timedelta(days=offset)
print('%s' % da)

offsetday() #引数省略したら今日の日付
offsetday(5) #引数渡したらN日後の日付


便利だねぇ。デフォルト値。
2019/03/09(土) 09:51:43.74ID:sGXnYTxg
今の流れならこうか

from datetime import date
from datetime import timedelta

#どこからからか設定もらう
i=getdefnum()

def offsetday(offset=i):
da=date.today() + timedelta(days=offset)
print('%s' % da)

offsetday() #引数省略したらもらってきた設定値
2019/03/09(土) 10:37:54.51ID:aHKuI1wh
>>708
いや、なんかごめんな…(´・ω・`)

なぜ一般に既定値って訳されるか、今一度考える機会を皆に与えたかったんだ
2019/03/09(土) 11:24:51.58ID:5O+JPpeP
>>704
関数の中でデフォルト値上書きしといてってどうういこと?
上書きしてるようには見えないんだけど
2019/03/09(土) 11:32:05.17ID:KFikgSMo
>>710
俺には難しすぎだよ。インポしてる関数(オブジェクト?)の使い方がわからん。
流れらはずれているが考えてみた。

#値段
pl=1980

def num(tax=8): #税率
print(pl*(1+tax/100))

num() #無指定8%
num(10) #税率指定

確かに便利だな
2019/03/09(土) 11:41:41.60ID:7R/zU8Sh
>>714
インぽなおまいはまず日本語の誤字脱字多数修正
2019/03/09(土) 12:17:11.83ID:pRsXet8g
>>713
上書きしてないよ

>>714
すごく分かりやすい例だ
2019/03/09(土) 13:01:55.81ID:QD5YmF9d
はじめまして初心者です。
Windows10でメモ帳を開いて、メモ帳のウインドウサイズを変更し文字を入力したいのです。
どなたか教えてください><
2019/03/09(土) 13:05:39.03ID:1Grnbwgn
>>717
そんなんで出来るか
2019/03/09(土) 13:07:04.99ID:QD5YmF9d
>>718
すいません。
>>717をPythonを使って行いたいって意味です。
よろしくお願いします><
2019/03/09(土) 13:07:18.08ID:QFJRtnnZ
>>714
>#値段
>pl=1980
なんて言うか、値段をplにするって俺ららしいよな
2019/03/09(土) 13:10:14.35ID:7R/zU8Sh
>>719
>>1くらいよめよ
理解できないならまだここじゃなくて
PC初心者板での勉強が必要なレベル
=Python以前の問題 だぞ
2019/03/09(土) 13:12:06.66ID:QD5YmF9d
>>721
>>1は読みましたが、解決しませんでした><
2019/03/09(土) 13:12:14.04ID:7R/zU8Sh
とりあえず↓あたりよめ (Python以前の問題で解決するかもしらん)
ttps://support.lenovo.com/gr/ja/solutions/ht118907
2019/03/09(土) 13:13:25.44ID:7R/zU8Sh
あるいはレジストリいじって解決するかもしらん
ttp://sei.qee.jp/docs/program/hta/sample/memofont.html
2019/03/09(土) 13:14:31.86ID:QD5YmF9d
真面目に質問してるので煽りはスルーします。。。
初心者です。優しい方お願いします><
ちなみに20代の女子です。。。
2019/03/09(土) 13:40:52.46ID:QFJRtnnZ
ID:WSwBoc7f はなんかこのスレでは珍しい高脳って感じだな
>>699
>既定値に変数を使用しても結び付きは変数ではなく実体
が正しいんだろうな
結び付きが変数なら、実引数省略して関数を呼びだしたときの変数が指すオブジェクトが
実引数になるだろうからな。
2019/03/09(土) 13:49:46.79ID:QD5YmF9d
>>717です。
どなたかよろしくお願いします><
2019/03/09(土) 13:54:33.79ID:BnoVO+GE
>>727
RPAを買いなさい
2019/03/09(土) 13:59:57.56ID:QD5YmF9d
>>728
すいません。目的はPythonの学習なのでPythonで解決したいと考えてます。
イケメンでPythonに詳しいあなた達なら良い解決策をお持ちではないですか?
2019/03/09(土) 14:02:39.34ID:BnoVO+GE
>>729
他のアプリを操作したい系は初心者が誤って足を踏み入れがちな典型的な罠
何の役にも立たないバッドノウハウの塊であり、初心者の学習には全く適さない
2019/03/09(土) 14:07:00.37ID:QD5YmF9d
>>730
では他のアプリとの連携はどうするのですか?
2019/03/09(土) 14:09:05.45ID:BnoVO+GE
>>731
Pythonなら処理結果を一旦ファイルに落とすのが普通です
2019/03/09(土) 14:14:42.55ID:QD5YmF9d
Pythonでメモ帳を500px×500pxで開きたいのですが
それは叶わないのでしょうか?
2019/03/09(土) 14:22:02.05ID:t5ksfgQn
https://github.com/asweigart/pyautogui

メモ帳を開いてメモ帳のウインドウサイズ変更まではこれ使えばいけそうだ
キーボードの操作はできるみたいだけど文字入力までできるかはわからない
>>732の言うように一時ファイルに書き込んでからオープンでいいなら可能だよ
初心者にはハードル高いと思うけどがんばってね
2019/03/09(土) 14:28:22.21ID:QD5YmF9d
お二方ありがとうございます。
私が調べたところPyAutoGUIというライブラリで
マウス操作やキー入力は可能でした。
ただ、ウィンドウサイズの変更と移動方法はよくわかりませんでした。

リンク先を見て勉強してみます。
2019/03/09(土) 15:04:12.35ID:lwZTh4qp
>>714 解ってるとは思うけど1つの例としては良いんだけど、実際にそんなプログラムは絶対に書くべきでは無いよね。

関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。
同じことをやるなら、パラメータとして渡すべきだろ。
2019/03/09(土) 15:28:12.28ID:o9iMui5S
>>736
あほか
関数なんてブラックボックスでいいんだよ
そういうのはドキュメントを整備しくもんだ
2019/03/09(土) 15:52:35.69ID:lwZTh4qp
>>737 プログラムこそ最高のドキュメントじゃ無いのかな?
ルールから外れたブログラミングルールは、決して褒められたものでは無い。

Pythonがなんで、インデントを重視したか? 誰が見ても間違えない様にするためなんだよ。
2019/03/09(土) 15:53:19.46ID:atnduDe4
>>736
関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。

お前はエスパーかw
2019/03/09(土) 16:00:48.16ID:lwZTh4qp
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倍マシ。 いくらドキュメントをどこかで作っても誰も読まないよ。 プログラムが大きくなればなるほどプログラムこそ最高のドキュメントなんだよ。
2019/03/09(土) 16:37:19.27ID:WSwBoc7f
>>726
自演に思われそうかつ高次脳機能障害みたいな略の持ち上げはYAMETE!
数式的に妥当かは与り知らんけど、Pythonに変数のエイリアスは無いしね
古典的な静的型言語と違い、変数は実体への参照に過ぎないのもハマりがちな所

代入を除く変更ってのも色々語弊が有るな、実体に対する操作と表現するべきか


>>735
んー…確かにドキュメントではその辺りが欠けているというか正式実装じゃない?
既に他者のPythonコードが読めるなら直接↓を見るとか、helpやpydocに掛けるなり
https://github.com/asweigart/pyautogui/blob/master/pyautogui/_window_win.py

質問に対する愚直な答えは同モジュールのようなctypesでWindows APIを呼び出したりが基本になるだろうけど
既存ライブラリに無い操作を実装するに際しては、Microsoft Docsとかにマクロの具体的な定数が併記されてないと
Windows SDKのC/C++ヘッダーも参照する事になるし、最終目標に対し言語や実現方法などが適切かも考えた方が良い
2019/03/09(土) 17:08:54.75ID:QD5YmF9d
>>741
ありがとうございます。
URL参考にさせていただきます。
外部アプリの操作にPythonは向いてないのでしょうか。
私なりに調べたところPythonからpowershellを実行するのが一番簡単そうだと思いました。
何かよい手があれば教えてください。
743デフォルトの名無しさん
垢版 |
2019/03/09(土) 17:35:51.96ID:kfZA3URW
ねむくなるねこのすれ
2019/03/09(土) 19:17:19.14ID:fMIUxryy
初心者は寝てていいよ
2019/03/09(土) 19:23:12.70ID:WSwBoc7f
>>742
もっと全体的な流れ、具体的な結果に依るので抽象的な回答になってしまうけど
メモ帳へ文字入力というのが単にファイルの読み書きで済むなら迂遠だし
エディタを機械的に操作したければ何ぞスクリプト対応のアプリを使用するとか

汎用的に外部アプリ全般を弄りたくて起動や開く程度ならsubprocessとかでも十分だけど
細かい所はWinAPIを直接呼ぶ必要が出てきてたり、大半がPowershellで構成されるなら
これはもうPythonの学習というより、それらにすり替わり、置き換えられるよねという事

外部アプリ操作≒UI操作なら一般的とは思わないが、シェル代わりや橋渡しとしてはよく使われる
Windows APIを呼び出す云々はSDKを使うネイティブ言語よりコンパイル諸々などお手軽な面はある
2019/03/09(土) 19:38:41.90ID:GVs3bbIF
例えば、Ruby から、powershell を呼び出して、クリップボード処理もできる。
str = `powershell Get-Clipboard`

>でも、メモ帳のウインドウサイズを変更し、文字を入力したいのです
基本的に、他人が作ったアプリは、他のアプリから操作できない。
操作できるためには、操作用のAPI を公開して、その使用方法の文書も書く必要がある

powershell は公開されているから、他のアプリからも使えるけど、メモ帳はどうかな?

例えば、君が作ったアプリを、他のアプリから操作できるように、
わざわざ操作用のAPI を公開して、その使用方法の文書を書いたりしないでしょ?
面倒くさいし

そういうアプリは当然、他のアプリから操作できない
2019/03/09(土) 19:44:42.88ID:C6v7oEvs
rubyとかいうゴミ言語はまったく関係ないな
powershellを外部コマンドとして呼び出してるだけ
これでrubyスゴい!になっちゃうのがrubyキチガイのキチガイたる所以
2019/03/09(土) 19:47:45.08ID:3mUakWGD
そんなことよりなんで今更何のためにメモ帳に書くのかな。そっちの方が興味がある。
2019/03/09(土) 19:53:19.79ID:QD5YmF9d
>>745
subprocessを使えば簡単な操作はできるんですね。
ありがとうございます。調べてみます。
本当は複雑なこともやってみたいと思ってましたが。。。

>>746
APIが公開されてないものは基本外部から操作は出来ないんですね。。。
ありがとうございます。勉強になりました。
2019/03/09(土) 19:57:06.37ID:wl/Le+J5
さすがは、チームRWBY
相手の力を利用するとは、なかなかやるね!
2019/03/09(土) 20:21:03.99ID:Pn/iQo1s
rubyはpycallとか作ってまで生き残りをはかってるからな

これほど「始まる前に勝負着いてた」事例があるだろうか
752746
垢版 |
2019/03/09(土) 20:40:28.25ID:GVs3bbIF
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
2019/03/09(土) 21:05:21.70ID:QD5YmF9d
Pythonではできないのでしょうか?
2019/03/09(土) 21:36:12.11ID:BnoVO+GE
>>752
PowerShellすごい!
2019/03/09(土) 21:51:05.13ID:Asclh6VQ
>>753

スレ違い
2019/03/09(土) 21:52:20.14ID:QD5YmF9d
>>755
ここはPythonすれですよw
2019/03/09(土) 23:13:21.29ID:QD5YmF9d
皆さん、相談にのっていただきありがとうございました。
SikuliというUI自動化ツールが優秀で思い通りの事ができました。
Pythonのスクリプトも使用できるのでとても満足です。
758デフォルトの名無しさん
垢版 |
2019/03/09(土) 23:51:29.47ID:H6isrNei
Ruby禁止のRubyの単語に反応して書き込んでる説
759デフォルトの名無しさん
垢版 |
2019/03/10(日) 01:39:40.52ID:/HGKNCBK
副業解禁で激変する若者世代とマネージャー世代のキャリア観
http://www.businessinsider.jp/post-107782
フリーランスの職種20個の仕事内容と平均年収をわかりやすく解説
http://www.proof0309.com/entry/shokushu
時給1万円のバイトも。会社員向きのプチ副業を、“バイト芸人”が教える
http://headlines.yahoo.co.jp/article?a=20190226-00127948-bizspa-bus_all
副業が「会社にバレる人」と「バレない人」の大差
http://headlines.yahoo.co.jp/article?a=20190303-00268007-toyo-bus_all
正社員の10%以上が副業 中には過重労働で体調崩す人も
http://headlines.yahoo.co.jp/hl?a=20190227-00010000-wordleaf-bus_all
「副業で年2000万円稼ぐ男」に学ぶキャリア戦略
http://headlines.yahoo.co.jp/article?a=20190221-00266856-toyo-bus_all
加速する「副業社会」正社員の4割が「副業したい」 気になる収入はどれくらい?
http://headlines.yahoo.co.jp/hl?a=20190218-00010001-danro-life
おすすめ副業22選を現役フリーランスが解説【在宅も可能】
http://www.proof0309.com/entry/zaitaku-hukugyou
会社を辞めてフリーランスで働きたいあなたが知っておくべき10のこと
http://www.businessinsider.jp/post-165731
フリーランスと会社員、働き方の根本的な差 広がる「雇用されない働き方」の課題とは何か
http://toyokeizai.net/articles/-/263055
フリーランス人口は増える!今後は仕事もプロジェクト単位になる!?
http://freelance.mts-career.com/population/
どのくらい稼げるの?フリーランスエンジニアの単価・報酬・年収の話
http://findy-code.io/engineer-lab/engineer-unitprice-income
2019/03/10(日) 09:53:19.84ID:5/+zyaBC
>>752
死ね
2019/03/10(日) 10:33:29.03ID:YmMiXd1Z
ガイジなど世間的には生まれた時点で死んだような存在だろネットでくらい許せ
762デフォルトの名無しさん
垢版 |
2019/03/10(日) 18:44:45.56ID:uFsYqTSV
ruby禁止は浸透したがpowershellも禁止でおながいしまつ
2019/03/10(日) 19:04:53.21ID:w00/E2cH
プログラマー40歳限界説
2019/03/10(日) 19:42:00.71ID:XCpNHt+Q
ブックマークしてたpowershellのマニュアルのアドレスが変更されたみたいだ
誰か知りませんか?
2019/03/10(日) 19:50:01.61ID:eNJkLSXg
スレチ
2019/03/11(月) 02:31:05.67ID:Q8+quAlB
numpyでベクトルの配列の全要素に行列を掛けるにはどうしたらいいでしょ?
やりたい事は

vec=[[0,0],[1,1],[2,2]...]
mat=[[0,1],[1,2]]

result=[m & v for v in vec]

こんな感じです
767デフォルトの名無しさん
垢版 |
2019/03/11(月) 05:21:09.87ID:pTTv+VC9
mat@vec
768デフォルトの名無しさん
垢版 |
2019/03/11(月) 05:23:59.55ID:pTTv+VC9
vecの作り方によっては
mat@(vec.T)
2019/03/11(月) 07:42:02.40ID:R4ZESWdO
pythonできればc#もできますか?
pythonでゲームと、c#でwindowsのソフト両方を使ってますわ
2019/03/11(月) 08:49:44.07ID:Rf81Fxun
フォルダを空にしようと思いましたが、うまく行きません
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)
はうまく行っているようです

このやり方はあまり良くないのでしょうか?
2019/03/11(月) 08:50:31.50ID:IpMePMuQ
>>768
すみませんミスタイプしてました。求めたい結果は
result=[mat@v for v in vec]
ですね
772デフォルトの名無しさん
垢版 |
2019/03/11(月) 12:16:20.15ID:hfHU2O5u
>>771
forいらんで
773デフォルトの名無しさん
垢版 |
2019/03/11(月) 12:19:13.01ID:hfHU2O5u
こういうことかな
(mat@(vec.T)).T
2019/03/11(月) 17:11:44.97ID:mNeqJkGU
>>770
os.mkdirは途中に存在しないフォルダがあるとエラーしてしまうので
「os.makedirs()」をつかってみそ
2019/03/11(月) 17:33:25.52ID:pvnV5rIH
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)
2019/03/11(月) 17:36:22.93ID:mNeqJkGU
>>775
  >>420
2019/03/11(月) 17:38:42.78ID:mNeqJkGU
とちゅうでおくってしまった
>>420がイイ(・∀・)こといってる気がするんだが
なんとか利用できないかな
2019/03/11(月) 19:53:46.76ID:iNskGddB
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を辞書で引け
話はそれからだ
2019/03/11(月) 19:57:35.25ID:PGatxMde
クリトリスですか?なるほど…
2019/03/11(月) 20:39:01.91ID:mSdvFdhb
print(*map(list, zip(*[map(int, input().split()) for i in range(int(input()))])))
2019/03/11(月) 21:57:53.69ID:pvnV5rIH
セクハラ通り越して放送禁止用語レベルだったんですね

>>778 こういうループの発想が湧きませんでした 参考にさせて頂きます

>>780 コレ使ってみます 関数1個1個はナントナク分かりましたが、何重も連なると自分のレベルは難しいです 時間かけて解読してみます

>>777-780 皆さんありがとうございました
2019/03/11(月) 22:05:12.11ID:IpMePMuQ
>>773
ディメンションがちゃうで言われますね
つまり座標配列全てにアフィン変換したいって事なんですがnumpyじゃ無理なんかな?
2019/03/11(月) 23:20:05.55ID:GdRfR4uu
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]]
2019/03/11(月) 23:38:19.16ID:qe97t/2K
>>783
グロ
2019/03/11(月) 23:54:59.52ID:0HIo0fVP
>>778
>コードを書く前にcuntを辞書で引け
ゆとり教育では辞書使うなんて難易度の高いことはしない
2019/03/12(火) 00:08:58.95ID:KQFIYqiK
>>782
"アフィン変換 numpy"でググればなんか希望の物が引っかかるんじゃないのか
numpyを使ってアフィン変換をするライブラリなんかは誰か作っている気がする
2019/03/12(火) 01:19:04.31ID:Tg1PBlZE
>>778 cunt 辞書ひいた。 笑っちゃったよ。

1. a stupid or unpleasant person
2. -> HUMAN
a woman's vagina =sex organ
2019/03/12(火) 01:43:49.00ID:Tg1PBlZE
>>787 同じロングマンなんだけどなんかニュアンスが違うな。

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.
2019/03/12(火) 12:29:06.26ID:Le2Xhtue
引数のイメージなんですが、引数は材料で、材料を関数で調理器にかけるイメージでしょうか?
2019/03/12(火) 12:30:30.49ID:F9OOaHwl
戻り値は?
2019/03/12(火) 12:33:21.35ID:c3A0Gx7w
ひき肉を作る機械のイメージでええんやないの
上に入れる肉が引数、機械が関数、出てきたひき肉が戻り値
2019/03/12(火) 12:36:33.66ID:rf03pH6k
引数に肉しか入れてないのに勝手に台所のコショウが減ったり電気使われたりするのが副作用
2019/03/12(火) 12:39:17.36ID:Le2Xhtue
ひき肉が引数、調理器が関数、バーグが戻り値
ありがとうござ
2019/03/12(火) 12:41:44.81ID:Le2Xhtue
selfの意味ってなんですか?
単に関数を作成したときにデフォルトでついてくる引数という感じでしょうか。
だとしたらなんのためにですか?

読んでみたんですが、イマイチイメージが、、、
795デフォルトの名無しさん
垢版 |
2019/03/12(火) 12:52:43.68ID:uvkzn3tS
>>794
selfは関数ではなくクラスのメソッドに付ける
Javaのthisみたいなもので、メソッドを呼び出したオブジェクト自身を受け取るための引数
メソッド内でメンバ変数を参照したり別のメソッドを呼び出したりする時にself.〜 として使う
2019/03/12(火) 12:58:27.33ID:R/A89vkp
横からすいません
self、self以外を指定することはあるのでしょうか?
2019/03/12(火) 13:11:28.09ID:rdaDEiid
>>796
慣例的なもので言語制約ではない、が補完などに影響するかも
クラスメソッドではクラスが割り当てられるのでclsが使われる
2019/03/12(火) 13:16:23.13ID:rf03pH6k
hoge.myMethod(fuga, piyo)
myMethod(hoge, fuga, piyo)
みたいなイメージ
799デフォルトの名無しさん
垢版 |
2019/03/12(火) 13:20:45.17ID:6Uu2j9Xc
>>782
馬鹿には無理
2019/03/12(火) 13:36:24.76ID:R/A89vkp
>>797
ありがとうございます
2019/03/12(火) 13:58:38.98ID:c3A0Gx7w
そもそも何でメソッドの引数にオブジェクト自身を渡すんやろうか
obj.method()みたいに呼び出すなら、どのオブジェクトをメソッドに渡すかわ明らかなんだから、省略できそうなのに
2019/03/12(火) 14:09:51.25ID:R/A89vkp
>>801
こういう渡し方をする言語、python以外にもあるんでしょうか
2019/03/12(火) 14:19:35.49ID:rdaDEiid
>>801
それはPythonのオブジェクト指向の実装方法とか基本理念によるもの、属性解決については
https://docs.python.org/ja/3/howto/descriptor.html#definition-and-introduction
self.meth()とcls.meth(self)の等価性を明示するみたいな論調も記憶にあるが公式なソースは忘れた
2019/03/12(火) 14:39:35.59ID:5JRn7Uik
>>802
perl
805803
垢版 |
2019/03/12(火) 14:48:12.21ID:rdaDEiid
selfに対する直接の説明としてはちょっとアンカーが適切ではないか
https://docs.python.org/ja/3.5/howto/descriptor.html#functions-and-methods
「関数に基づく環境の上に構築」って所がミソやね、後付けと言われる所以
806デフォルトの名無しさん
垢版 |
2019/03/12(火) 16:34:54.17ID:8KtfShI4
>>802
tcl
2019/03/12(火) 16:40:24.68ID:Le2Xhtue
>>795
よくわからないけどありがとうひき肉おじさん
808デフォルトの名無しさん
垢版 |
2019/03/12(火) 17:17:23.48ID:8KtfShI4
わからないならレスしないでくださいうざいだけです
2019/03/12(火) 17:19:11.50ID:Le2Xhtue
インスタンス作成っていうのはメモリ上に領域を確保する作業ってことでいいんでしょうか。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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