19/03/08 21:35:26.18 5FsfaYFV.net
>>631
URLリンク(i.imgur.com)
653:デフォルトの名無しさん
19/03/08 21:45:16.90 mz9PUEDs.net
まじかよこいつ…
654:デフォルトの名無しさん
19/03/08 21:47:23.79 JVGfVyzo.net
>>632
‥あの、最後の行でnum()が実行される前に、i=7にして、print(arg) のargに7入れてますよね。。
655:デフォルトの名無しさん
19/03/08 21:48:50.29 6/VZFxCg.net
>>632
まず関数の中ではprintじゃなくてreturn使えよ
656:デフォルトの名無しさん
19/03/08 21:54:12.28 1m9JjIZU.net
クソー、こんなバカでかい釣針に…
657:デフォルトの名無しさん
19/03/08 21:58:20.32 0lCnL4hz.net
>>632
レベル高すぎて俺分からんが、へんだとPythonを作っているところに
激しく抗議したほうが良いな。
658:デフォルトの名無しさん
19/03/08 22:10:29.49 5FsfaYFV.net
>>634
def と言うのが何かを考えよう。
def で関数を定義する。その時点でパラメータのデフォルト値も確定する。
つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。
デフォルト値がころころ変わったりするものか。
つまり、関数定義時点で、arg =None とデフォルト値が確定する。実行時ではない。デフォルト値が、None から7にころころ変わったりするものか。だから、結果はNone なんだよ
659:デフォルトの名無しさん
19/03/08 22:38:20.41 5FsfaYFV.net
>>635
URLリンク(i.imgur.com)
660:デフォルトの名無しさん
19/03/08 22:44:17.08 5FsfaYFV.net
>>631
URLリンク(i.imgur.com)
661:デフォルトの名無しさん
19/03/08 22:48:11.06 5FsfaYFV.net
>>614
同じことだよ
Def で確定なんかしないんだな
URLリンク(i.imgur.com)
662:デフォルトの名無しさん
19/03/08 22:51:54.71 5FsfaYFV.net
要するに
この二つで
主力に差がある
おかしいだろ
言語仕様的にってこと
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
i がグローバルだとか
def で引数確定だとか
じゃあ説明つかないわけで
663:デフォルトの名無しさん
19/03/08 22:55:09.64 drDoyyDV.net
何もおかしくなくね?
664:デフォルトの名無しさん
19/03/08 22:58:43.49 Bv9xm7M7.net
5FsfaYFVの頭がおかしい
665:デフォルトの名無しさん
19/03/08 23:03:08.61 kqYYM5Yl.net
何が問題なのかわからん
最初のはnum()に引数渡してないんだから、定義時のarg = 10がデフォルト値と設定されて10が表示される
次のはnum(7)と引数に7を渡してるんだから、デフォルト値をarg = 7で上書きして7と表示される
666:デフォルトの名無しさん
19/03/08 23:08:02.19 0lCnL4hz.net
>>643
俺ら低脳はおかしくなくねだろうが、高脳は説明つかないわけで
になるんだよ。
脳レベルがずっと低い低脳は高脳が言っていることはレベル高すぎて理解できないことがよくあるからな
高脳がすごいことをカキコしても俺らはついていけないからスルー(何言っているの)になってしまう。
>>642
超初心者(低脳)スレで言ってもしょうがないから,teratailあたりで、これ説明つかないよね
と意見を求めたほうが良いよ
667:デフォルトの名無しさん
19/03/08 23:25:29.70 33ZLM8BT.net
>>642 何言ってんだこいつは? 長々とおちょくってるだけだろ。
何が言語仕様的にだ。言語仕様も理解できないで文句言うな。 言語仕様を100回読め。
668:デフォルトの名無しさん
19/03/08 23:25:43.90 /RdmhwQH.net
こんな基本的な事がおかしかったらとっくに修正されてる
ドキュメントを熟読してnum.__defaults__を確認しなさい
669:デフォルトの名無しさん
19/03/08 23:59:43.59 fVqLi10C.net
>>645
>次のはnum(7)と引数に7を渡してるんだから、デフォルト値をarg = 7で上書きして7と表示される
デフォルトは確定だから上書き不可能
670:デフォルトの名無しさん
19/03/09 00:01:58.96 LldggWB2.net
この言語仕様がおかしい
URLリンク(i.imgur.com)
i はグローバル変数なんだから、def で確定させてはいけない
それが直感的に正しい記述を目指すPython 的な文法
開発者は即刻インタプリタを修正すべき
すぐにだ!
671:デフォルトの名無しさん
19/03/09 00:03:20.04 LldggWB2.net
黄猿は現行仕様を無批判に教祖のごとく崇め奉る無能者
そんな信者の擁護論をあてにしてはいけない
俺のような人間の言うことを開発者は聞くべき
672:デフォルトの名無しさん
19/03/09 00:04:09.24 JrnVgIXe.net
そもそもデフォルト引数に変数を入れるという使い方が間違ってるわけで…
673:デフォルトの名無しさん
19/03/09 00:07:50.33 ScAo2omB.net
>>652
初耳だ、詳しく
674:デフォルトの名無しさん
19/03/09 00:18:40.63 a1Hsl2rh.net
なんかもやもやしてたけど>>652の発言でスッキリした
675:デフォルトの名無しさん
19/03/09 00:31:23.52 ScAo2omB.net
>>654
エー、どういうこと?
俺のモヤモヤ晴らしてくれよー
676:デフォルトの名無しさん
19/03/09 00:32:14.31 a1Hsl2rh.net
前言撤回
numの()に何も入れないで呼び出しゃ何を渡すか不安定になって当然と思うが
違うのか?
677:デフォルトの名無しさん
19/03/09 00:32:30.46 jmJNTA16.net
>>650 お前が言語を理解していないことがよくわかるな。
デフォルト値は変数ではなくて、固定の値なんだぞ。
678:デフォルトの名無しさん
19/03/09 00:32:49.42 QFJRtnnZ.net
>>652
普通は
i = 10
def num(arg=i):
print(arg)
じゃなく、
def num(arg=10):
print(arg)
とするんだろうが、変数を介してデフォルト引数を指定して使う場合って
どんな時なんだろうって思うんだよな
679:デフォルトの名無しさん
19/03/09 00:34:24.26 jmJNTA16.net
>>656 何も入れない時に、どう言う値が入ったものとして動くかを決めるのがデフォルト値。
680:デフォルトの名無しさん
19/03/09 00:46:43.68 LldggWB2.net
>>659
def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。
つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。
681:デフォルトの名無しさん
19/03/09 00:49:26.21 a1Hsl2rh.net
>>659 そうなんだけど
多分>>650は引数のこと理解してないをわかってないんだろ。
デフォルト値を使いたい訳じゃなく、defに数値を渡したいだけじゃないのか?
682:デフォルトの名無しさん
19/03/09 00:51:38.41 LldggWB2.net
>numの()に何も入れないで呼び出しゃ何を渡すか不安定になって当然と思うが
不安定になるw
なにその情緒論
文法的に不可ならエラー吐けばOK
そうでないなら、「何らかの処理」をさせて終わり
その処理を場合分けして書いとくのが公式ドキュメントの仕事だろ
683:デフォルトの名無しさん
19/03/09 00:55:39.76 jmJNTA16.net
>>661
def num(arg=i):
print(arg)
と、
def num(i):
print(i)
は同じものだと思ってるのかな?
下の場合はまたそれはそれで誤解しそうな要素を孕んでるんだけど。 この場合の i は、ローカル変数となる。外でグローバル変数として使われていてもね。
684:デフォルトの名無しさん
19/03/09 01:02:30.05 ScAo2omB.net
誰か俺の疑問にも応えてよ~
>>652について詳しく知りたいんだよ~
685:デフォルトの名無しさん
19/03/09 01:03:05.66 jmJNTA16.net
もしかして、デフォルトというカタカナ英語が理解できないのかも。
省略した時の値、省略値といってあげれば理解できるのかな?
686:デフォルトの名無しさん
19/03/09 01:03:41.96 a1Hsl2rh.net
>>663
そこでなくて
def num(i):
を呼ぶときに
num()にするとエラーが出るよね。
けど、
def num(agr=i)
に、するとエラーが出ない!!うまく行った!!
けど、思ってた作動しない!なんでや!
で騒いでんのと思う
687:デフォルトの名無しさん
19/03/09 01:04:04.19 jmJNTA16.net
>>664 省略値って何をするものか理解したか?
688:デフォルトの名無しさん
19/03/09 01:14:03.06 ScAo2omB.net
>>667
どういうことですか?
条件によってデフォルト値を変えるような使い方はまずいんでしょうか?
689:デフォルトの名無しさん
19/03/09 01:16:59.92 jmJNTA16.net
>>668 まずいも何もそんなことはできないし、それは省略値ではない。
省略値は何度も言うように関数を定義した時点で固定されるもので、一度その時に固定された値が後で変わるようなことはあり得ない。
690:デフォルトの名無しさん
19/03/09 01:19:46.38 jmJNTA16.net
理解できなければ、デフォルト値には変数は使えないと覚えた方が身のためだよ。 あくまでも固定値なんだよ。
691:デフォルトの名無しさん
19/03/09 01:31:22.96 gjM9SRoS.net
URLリンク(i.imgur.com)
> 一度その時に固定された値(10)が後で変わるようなことはあり得ない。
変わってるじゃん
7 に
692:デフォルトの名無しさん
19/03/09 01:33:05.19 ScAo2omB.net
言い方がまずかったかな
私が言いたかったのは
def func(arg=var):
のvarの部分に変数を使うっていう意味で言ったつもりだったんですけど
693:デフォルトの名無しさん
19/03/09 01:38:38.47 gjM9SRoS.net
そう言い方がまずいんだよ
日本語の表現力が君には足りない
昨日からしつこく指摘されてようやく理解したようだね
以後は気をつけるように
君は言葉で説明するのはやめとけ
みんなが迷惑する
具体的なコード書いて、こうかくとこうなる、こう変えるとこうなる、そう具体的に書いたほうがいい
694:デフォルトの名無しさん
19/03/09 01:48:10.74 a1Hsl2rh.net
やっと言葉が見つかった
デフォルト値と引数の引き渡し方を混同してないかい?
695:デフォルトの名無しさん
19/03/09 01:54:11.30 CZjUTyKq.net
>>672
別にいいんじゃないの
なんかまずいことでもあるのかな?
696:デフォルトの名無しさん
19/03/09 01:59:58.65 jmJNTA16.net
>>674 そう言うことだな。
>>671 は完全に混同してる。 省略値が全くわかっていない。
下の方で
i= 7
num(i)
で呼んだ場合は、パラメーターとして7を渡したんだから、パラメータは省略されていないんだから省略値が使われるわけがないと言うことを理解しない限りは堂々巡りだな。
num() と言う形でパラメータを渡さなかった場合にだけ、省略値が使われる事を理解しなさい。 なんのための省略値だよ。
呼び出し元がパラメータを渡さなかった場合に使われる値が省略値だよ。
def num(arg=10)
であれば、num() で呼べば、num(10) と呼んだのと等しくなる。
697:デフォルトの名無しさん
19/03/09 02:07:54.61 ScAo2omB.net
>>676
ねえねえ、>>672に関してのご教授お願いしますよ
698:デフォルトの名無しさん
19/03/09 02:09:08.25 gjM9SRoS.net
>>676
その日本語説明では、
URLリンク(i.imgur.com)
が説明できていない
699:デフォルトの名無しさん
19/03/09 02:15:15.17 gjM9SRoS.net
>>676 の言いたいことをコードで書くとこうだな
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
700:デフォルトの名無しさん
19/03/09 02:19:08.39 gjM9SRoS.net
で、言語仕様的問題に戻るとだ。
インデント強制文法で売ってるPython 的には、こういう場合、i は、グローバル変数になるべきなのであって、
i 渡さない場合でも、上のi だけ参照するようなクソ仕様は直感に反するから修正しろということ
ちゃんと下の i も見るようにしろと。
701:デフォルトの名無しさん
19/03/09 02:21:39.74 jmJNTA16.net
>>678 お前は人の言葉を聞いていないだろ。
i=10
def num(arg=i) と書いた時点で、
def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定される�
702:セから。 その後で、iをどう変化させようが 省略値は変わらないんだよ。 お前わざとおちょくってるだろ。
703:デフォルトの名無しさん
19/03/09 02:22:12.05 gjM9SRoS.net
つまり、このコードでも出力は、10じゃなくて、7になるように言語体系を考えて作り込めということだよ。
URLリンク(i.imgur.com)
わかったか>PSF
704:デフォルトの名無しさん
19/03/09 02:24:09.75 gjM9SRoS.net
>i=10
>def num(arg=i) と書いた時点で、
>def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定されるんだから。
>その後で、iをどう変化させようが
>省略値は変わらないんだよ。
その日本語説明では、
URLリンク(i.imgur.com)
が説明できないな
もうお前日本語使うのやめろ
むいてないよ
コードで語れ
705:デフォルトの名無しさん
19/03/09 02:24:20.95 jmJNTA16.net
>>680 お前がバカなのはよくわかった。 省略値は変数じゃないと何べん言ったらわかるんだ。
706:デフォルトの名無しさん
19/03/09 02:25:17.72 ScAo2omB.net
>>681
ねえってばー、荒しの相手してないでボクの疑問に答えてくださいよー
707:デフォルトの名無しさん
19/03/09 02:29:04.29 jmJNTA16.net
>>685 お前も嵐だろ。
708:デフォルトの名無しさん
19/03/09 02:30:13.44 gjM9SRoS.net
試しに置き換えてみた
出力結果を見てみろ
7だぞ
10じゃないぞ
>>681
>i=10
>def num(arg=i) と書いた時点で、
>def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定されるんだから。
URLリンク(i.imgur.com)
709:デフォルトの名無しさん
19/03/09 02:30:23.94 jmJNTA16.net
>>685 >>684
710:デフォルトの名無しさん
19/03/09 02:32:07.70 jmJNTA16.net
>>687 お前がただのバカだと言うことがよくわかった。
小学校は卒業したか?
711:デフォルトの名無しさん
19/03/09 02:33:18.73 gjM9SRoS.net
コードとその実行結果だけが真実だよ
口汚く罵るのは素人の証拠
712:デフォルトの名無しさん
19/03/09 02:37:03.26 jmJNTA16.net
>>690 ここを100回読んでから出直せ。
URLリンク(docs.python.org)
4.7.1. デフォルトの引数値
713:デフォルトの名無しさん
19/03/09 02:37:28.33 ScAo2omB.net
>>688
おいおい荒しと一緒にしないでくれよ
自分の間違えに気が付いたんで逃げるのかw
デフォルト値に変数を使えるよねえw
i = 3
def sum(x, y=i):
print(x + y)
sum(2)
714:デフォルトの名無しさん
19/03/09 02:39:33.41 gjM9SRoS.net
>>691
このコード見て自分の日本語がおかしいと感じるだろう?
URLリンク(i.imgur.com)
715:デフォルトの名無しさん
19/03/09 02:39:50.07 jmJNTA16.net
重要な警告: デフォルト値は 1 度だけしか評価されません。
716:デフォルトの名無しさん
19/03/09 02:41:41.76 gjM9SRoS.net
>>694
だからなに?
コードで語れないの?
ひょっとしてドキュメント読むだけで、プログラム書いたことないの?
717:デフォルトの名無しさん
19/03/09 02:44:04.32 ScAo2omB.net
>>691
100回読んだけどデフォルト値に変数を使っちゃいけないなんて書いてませんでしたよ
>>669-670の発言の言い訳をお願いしますw
718:デフォルトの名無しさん
19/03/09 02:45:06.52 jmJNTA16.net
重要な警告: デフォルト値は 1 度だけしか評価されません。
変わらないものは変数とは言いません。
719:デフォルトの名無しさん
19/03/09 02:47:13.43 gjM9SRoS.net
>>692
Def に変数を代入してもOK
URLリンク(i.imgur.com)
720:デフォルトの名無しさん
19/03/09 02:47:13.77 EXmOKVNB.net
ガイガイ音頭踊っとれやとは言ったが
夜通し踊れとは言っとらん
721:デフォルトの名無しさん
19/03/09 02:51:29.61 ScAo2omB.net
>>697
i = 3
def sum(x, y=i):
この i は変数ではないと強弁されるおつもりか?
722:デフォルトの名無しさん
19/03/09 02:53:31.44 WSwBoc7f.net
実引数を渡したら既定値は参照されないので、頓珍漢な主張
また既定値に変数を使用しても結び付きは変数ではなく実体
定義時に解決された割り当ては些か小細工せんと変化しない
723:デフォルトの名無しさん
19/03/09 03:16:44.80 ScAo2omB.net
>>701
行きがかり上煽りのようになってしまったワケですが…
>>652の「そもそもデフォルト引数に変数を入れるという使い方が間違ってるわけで…」
という発言になんで間違え?って思ったんですよ
これ、「間違いではないけどあまり意味はないよ」くらいの解釈でよろしいんでしょうか?
724:デフォルトの名無しさん
19/03/09 03:47:01.64 WSwBoc7f.net
>>702
元になった変数へ再代入したら仮引数の既定値も変化する事を期待するならば意図した動作にはならない
しかし実体を共有したり、ミュターブルなら代入を除く変更を反
725:映させたり、コード次第で普遍的に意味がないという事もない またnum.__defaults__ = (7,)等として既定値の再割り当ても可能ではあるが、これは基本的に与える実引数を変えるべきとされよう
726:701
19/03/09 03:52:48.95 WSwBoc7f.net
なぜ長音符が妙な位置に…ミュターブル→ミュータブル(mutable)、変更可能オブジェクト
727:デフォルトの名無しさん
19/03/09 04:26:19.28 ScAo2omB.net
>>703
もちろん意図した場合を除いて実引数が変化するなどとは思っておりません
単にデフォルト引数に変数は間違えというのに引っかかったわけで
__defaults__は知りませんでした
以前デフォルト引数を使ってオブジェクト指向チックにというお題をやったもんで
animal = 'human' # 'dog' になったり 'cat' になったり
numeral = '人' if animal == 'human' else '匹'
def count(c, n=numeral):
____print(str(c) + n)
count(3)
# 鶏になった
count(3, '羽')
どうもありがとうございました
728:デフォルトの名無しさん
19/03/09 06:05:07.57 sGXnYTxg.net
>>705
>単にデフォルト引数に変数は間違えというのに引っかかったわけで
は、関数の中でデフォルト値上書きしといて何言ってんだ?
729:デフォルトの名無しさん
19/03/09 07:29:28.52 jmJNTA16.net
>>702 そう言う意味合いだけどわざわざ混乱するような書き方は避けるべきだと言う事。
普通はそんな書方したら叱られるレベル。
>>705 のように条件でデフォルト値を変えたいなら、def文の中に書いてわかりやすくすべき。
別れて書いたら混乱の元。
この場合も条件によりデフォルトの固定値を変えているだけでしかない。
730:デフォルトの名無しさん
19/03/09 07:50:08.53 sGXnYTxg.net
>>707
外部の設定ファイル読んでデフォルト値設定、デフォルト値でいいなら引数省略可、とかやる時どうやんの?
731:デフォルトの名無しさん
19/03/09 08:06:27.23 aHKuI1wh.net
どうでもいいが、デフォルトって既定値って言わね?普通
732:デフォルトの名無しさん
19/03/09 08:26:54.57 IZUVT+2M.net
どうでもいいんなら良いじゃん
日本語か英語かってだけだろ
プログラム用語と数学用語はもう和訳するのやめて全部カタカタ英語でいいよな
いちいち日本語にす🏝🏝🏝�ると無駄に難しく聞こえるんだよ
733:デフォルトの名無しさん
19/03/09 09:29:49.81 1Grnbwgn.net
ええ
734:デフォルトの名無しさん
19/03/09 09:37:13.71 sGXnYTxg.net
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日後の日付
便利だねぇ。デフォルト値。
735:デフォルトの名無しさん
19/03/09 09:51:43.74 sGXnYTxg.net
今の流れならこうか
from datetime import date
from datetime import timedelta
#どこからからか設定もらう
i=getdefnum()
def offsetday(offset=i):
da=date.today() + timedelta(days=offset)
print('%s' % da)
offsetday() #引数省略したらもらってきた設定値
736:デフォルトの名無しさん
19/03/09 10:37:54.51 aHKuI1wh.net
>>710
いや、なんかごめんな…(´・ω・`)
なぜ一般に既定値って訳されるか、今一度考える機会を皆に与えたかったんだ
737:デフォルトの名無しさん
19/03/09 11:24:51.58 5O+JPpeP.net
>>706
関数の中でデフォルト値上書きしといてってどうういこと?
上書きしてるようには見えないんだけど
738:デフォルトの名無しさん
19/03/09 11:32:05.17 KFikgSMo.net
>>712
俺には難しすぎだよ。インポしてる関数(オブジェクト?)の使い方がわからん。
流れらはずれているが考えてみた。
#値段
pl=1980
def num(tax=8): #税率
print(pl*(1+tax/100))
num() #無指定8%
num(10) #税率指定
確かに便利だな
739:デフォルトの名無しさん
19/03/09 11:41:41.60 7R/zU8Sh.net
>>716
インぽなおまいはまず日本語の誤字脱字多数修正
740:デフォルトの名無しさん
19/03/09 12:17:11.83 pRsXet8g.net
>>715
上書きしてないよ
>>716
すごく分かりやすい例だ
741:デフォルトの名無しさん
19/03/09 13:01:55.81 QD5YmF9d.net
はじめまして初心者です。
Windows10でメモ帳を開いて、メモ帳のウインドウサイズを変更し文字を入力したいのです。
どなたか教えてください><
742:デフォルトの名無しさん
19/03/09 13:05:39.03 1Grnbwgn.net
>>719
そんなんで出来るか
743:デフォルトの名無しさん
19/03/09 13:07:04.99 QD5YmF9d.net
>>720
すいません。
>>719をPythonを使って行いたいって意味です。
よろしくお願いします><
744:デフォルトの名無しさん
19/03/09 13:07:18.08 QFJRtnnZ.net
>>716
>#値段
>pl=1980
なんて言うか、値段をplにするって俺ららしいよな
745:デフォルトの名無しさん
19/03/09 13:10:14.35 7R/zU8Sh.net
>>721
>>1くらいよめよ
理解できないならまだここじゃなくて
PC初心者板での勉強が必要なレベル
=Python以前の問題 だぞ
746:デフォルトの名無しさん
19/03/09 13:12:06.66 QD5YmF9d.net
>>723
>>1は読みましたが、解決しませんでした><
747:デフォルトの名無しさん
19/03/09 13:12:14.04 7R/zU8Sh.net
とりあえず↓あたりよめ (Python以前の問題で解決するかもしらん)
URLリンク(support.lenovo.com)
748:デフォルトの名無しさん
19/03/09 13:13:25.44 7R/zU8Sh.net
あるいはレジストリいじって解決するかもしらん
URLリンク(sei.qee.jp)
749:デフォルトの名無しさん
19/03/09 13:14:31.86 QD5YmF9d.net
真面目に質問してるので煽りはスルーします。。。
初心者です。優しい方お願いします><
ちなみに20代の女子です。。。
750:デフォルトの名無しさん
19/03/09 13:40:52.46 QFJRtnnZ.net
ID:WSwBoc7f はなんかこのスレでは珍しい高脳って感じだな
>>701の
>既定値に変数を使用しても結び付きは変数ではなく実体
が正しいんだろうな
結び付きが変数なら、実引数省略して関数を呼びだしたときの変数が指すオブジェクトが
実引数になるだろうからな。
751:デフォルトの名無しさん
19/03/09 13:49:46.79 QD5YmF9d.net
>>719です。
どなたかよろしくお願いします><
752:デフォルトの名無しさん
19/03/09 13:54:33.79 BnoVO+GE.net
>>729
RPAを買いなさい
753:デフォルトの名無しさん
19/03/09 13:59:57.56 QD5YmF9d.net
>>730
すいません。目的はPythonの学習なのでPythonで解決したいと考えてます。
イケメンでPythonに詳しいあなた達なら良い解決策をお持ちではないですか?
754:デフォルトの名無しさん
19/03/09 14:02:39.34 BnoVO+GE.net
>>731
他のアプリを操作したい系は初心者が誤って足を踏み入れがちな典型的な罠
何の役にも立たないバッドノウハウの塊であり、初心者の学習には全く適さない
755:デフォルトの名無しさん
19/03/09 14:07:00.37 QD5YmF9d.net
>>732
では他のアプリとの連携はどうするのですか?
756:デフォルトの名無しさん
19/03/09 14:09:05.45 BnoVO+GE.net
>>733
Pythonなら処理結果を一旦ファイルに落とすのが普通です
757:デフォルトの名無しさん
19/03/09 14:14:42.55 QD5YmF9d.net
Pythonでメモ帳を500px×500pxで開きたいのですが
それは叶わないのでしょうか?
758:デフォルトの名無しさん
19/03/09 14:22:02.05 t5ksfgQn.net
URLリンク(github.com)
メモ帳を開いてメモ帳のウインドウサイズ変更まではこれ使えばいけそうだ
キーボードの操作はできるみたいだけど文字入力までできるかはわからない
>>734の言うように一時ファイルに書き込んでからオープンでいいなら可能だよ
初心者にはハードル高いと思うけどがんばってね
759:デフォルトの名無しさん
19/03/09 14:28:22.21 QD5YmF9d.net
お二方ありがとうございます。
私が調べたところPyAutoGUIというライブラリで
マウス操作やキー入力は可能でした。
ただ、ウィンドウサイズの変更と移動方法はよくわかりませんでした。
リンク先を見て勉強してみます。
760:デフォルトの名無しさん
19/03/09 15:04:12.35 lwZTh4qp.net
>>716 解ってるとは思うけど1つの例としては良いんだけど、実際にそんなプログラムは絶対に書くべきでは無いよね。
関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。
同じことをやるなら、パラメータとして渡すべきだろ。
761:デフォルトの名無しさん
19/03/09 15:28:12.28 o9iMui5S.net
>>738
あほか
関数なんてブラックボックスでいいんだよ
そういうのはドキュメントを整備しくもんだ
762:デフォルトの名無しさん
19/03/09 15:52:35.69 lwZTh4qp.net
>>739 プログラムこそ最高のドキュメントじゃ無いのかな?
ルールから外れたブログラミングルールは、決して褒められたものでは無い。
Pythonがなんで、インデントを重視したか? 誰が見ても間違えない様にするためなんだよ。
763:デフォルトの名無しさん
19/03/09 15:53:19.46 atnduDe4.net
>>738
関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。
お前はエスパーかw
764:デフォルトの名無しさん
19/03/09 16:00:48.16 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:デフォルトの名無しさん
19/03/09 16:37:19.27 WSwBoc7f.net
>>728
自演に思われそうかつ高次脳機能障害みたいな略の持ち上げはYAMETE!
数式的に妥当かは与り知らんけど、Pythonに変数のエイリアスは無いしね
古典的な静的型言語と違い、変数は実体への参照に過ぎないのもハマりがちな所
代入を除く変更ってのも色々語弊が有るな、実体に対する操作と表現するべきか
>>737
んー…確かにドキュメントではその辺りが欠けているというか正式実装じゃない?
既に他者のPythonコードが読めるなら直接↓を見るとか、helpやpydocに掛けるなり
URLリンク(github.com)
質問に対する愚直な答えは同モジュールのようなctypesでWindows APIを呼び出したりが基本になるだろうけど
既存ライブラリに無い操作を実装するに際しては、Microsoft Docsとかにマクロの具体的な定数が併記されてないと
Windows SDKのC/C++ヘッダーも参照する事になるし、最終目標に対し言語や実現方法などが適切かも考えた方が良い
766:デフォルトの名無しさん
19/03/09 17:08:54.75 QD5YmF9d.net
>>743
ありがとうございます。
URL参考にさせていただきます。
外部アプリの操作にPythonは向いてないのでしょうか。
私なりに調べたところPythonからpowershellを実行するのが一番簡単そうだと思いました。
何かよい手があれば教えてください。
767:デフォルトの名無しさん
19/03/09 17:35:51.96 kfZA3URW.net
ねむくなるねこのすれ
768:デフォルトの名無しさん
19/03/09 19:17:19.14 fMIUxryy.net
初心者は寝てていいよ
769:デフォルトの名無しさん
19/03/09 19:23:12.70 WSwBoc7f.net
>>744
もっと全体的な流れ、具体的な結果に依るので抽象的な回答になってしまうけど
メモ帳へ文字入力というのが単にファイルの読み書きで済むなら迂遠だし
エディタを機械的に操作したければ何ぞスクリプト対応のアプリを使用するとか
汎用的に外部アプリ全般を弄りたくて起動や開く程度ならsubprocessとかでも十分だけど
細かい所はWinAPIを直接呼ぶ必要が出てきてたり、大半がPowershellで構成されるなら
これはもうPythonの学習というより、それらにすり替わり、置き換えられるよねという事
外部アプリ操作≒UI操作なら一般的とは思わないが、シェル代わりや橋渡しとしてはよく使われる
Windows APIを呼び出す云々はSDKを使うネイティブ言語よりコンパイル諸々などお手軽な面はある
770:デフォルトの名無しさん
19/03/09 19:38:41.90 GVs3bbIF.net
例えば、Ruby から、powershell を呼び出して、クリップボード処理もできる。
str = `powershell Get-Clipboard`
>でも、メモ帳のウインドウサイズを変更し、文字を入力したいのです
基本的に、他人が作ったアプリは、他のアプリから操作できない。
操作できるためには、操作用のAPI を公開して、その使用方法の文書も書く必要がある
powershell は公開されているから、他のアプリからも使えるけど、メモ帳はどうかな?
例えば、君が作ったアプリを、他のアプリから操作できるように、
わざわざ操作用のAPI を公開して、その使用方法の文書を書いたりしないでしょ?
面倒くさいし
そういうアプリは当然、他のアプリから操作できない
771:デフォルトの名無しさん
19/03/09 19:44:42.88 C6v7oEvs.net
rubyとかいうゴミ言語はまったく関係ないな
powershellを外部コマンドとして呼び出してるだけ
これでrubyスゴい!になっちゃうのがrubyキチガイのキチガイたる所以
772:デフォルトの名無しさん
19/03/09 19:47:45.08 3mUakWGD.net
そんなことよりなんで今更何のためにメモ帳に書くのかな。そっちの方が興味がある。
773:デフォルトの名無しさん
19/03/09 19:53:19.79 QD5YmF9d.net
>>747
subprocessを使えば簡単な操作はできるんですね。
ありがとうございます。調べてみます。
本当は複雑なこともやってみたいと思ってましたが。。。
>>748
APIが公開されてないものは基本外部から操作は出来ないんですね。。。
ありがとうございます。勉強になりました。
774:デフォルトの名無しさん
19/03/09 19:57:06.37 wl/Le+J5.net
さすがは、チームRWBY
相手の力を利用するとは、なかなかやるね!
775:デフォルトの名無しさん
19/03/09 20:21:03.99 Pn/iQo1s.net
rubyはpycallとか作ってまで生き残りをはかってるからな
これほど「始まる前に勝負着いてた」事例があるだろうか
776:746
19/03/09 20:40:28.25 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:デフォルトの名無しさん
19/03/09 21:05:21.70 QD5YmF9d.net
Pythonではできないのでしょうか?
778:デフォルトの名無しさん
19/03/09 21:36:12.11 BnoVO+GE.net
>>754
PowerShellすごい!
779:デフォルトの名無しさん
19/03/09 21:51:05.13 Asclh6VQ.net
>>755
スレ違い
780:デフォルトの名無しさん
19/03/09 21:52:20.14 QD5YmF9d.net
>>757
ここはPythonすれですよw
781:デフォルトの名無しさん
19/03/09 23:13:21.29 QD5YmF9d.net
皆さん、相談にのっていただきありがとうございました。
SikuliというUI自動化ツールが優秀で思い通りの事ができました。
Pythonのスクリプトも使用できるのでとても満足です。
782:デフォルトの名無しさん
19/03/09 23:51:29.47 H6isrNei.net
Ruby禁止のRubyの単語に反応して書き込んでる説
783:デフォルトの名無しさん
19/03/10 01:39:40.52 /HGKNCBK.net
副業解禁で激変する若者世代とマネージャー世代のキャリア観
URLリンク(www.businessinsider.jp)
フリーランスの職種20個の仕事内容と平均年収をわかりやすく解説
URLリンク(www.proof0309.com)
時給1万円のバイトも。会社員向きのプチ副業を、“バイト芸人”が教える
URLリンク(headlines.yahoo.co.jp)
副業が「会社にバレる人」と「バレない人」の大差
URLリンク(headlines.yahoo.co.jp)
正社員の10%以上が副業 中には過重労働で体調崩す人も
URLリンク(headlines.yahoo.co.jp)
「副業で年2000万円稼ぐ男」に学ぶキャリア戦略
URLリンク(headlines.yahoo.co.jp)
加速する「副業社会」正社員の4割が「副業したい」 気になる収入はどれくらい?
URLリンク(headlines.yahoo.co.jp)
おすすめ副業22選を現役フリーランスが解説【在宅も可能】
URLリンク(www.proof0309.com)
会社を辞めてフリーランスで働きたいあなたが知っておくべき10のこと
URLリンク(www.businessinsider.jp)
フリーランスと会社員、働き方の根本的な差 広がる「雇用されない働き方」の課題とは何か
URLリンク(toyokeizai.net)
フリーランス人口は増える!今後は仕事もプロジェクト単位になる!?
URLリンク(freelance.mts-career.com)
どのくらい稼げるの?フリーランスエンジニアの単価・報酬・年収の話
URLリンク(findy-code.io)
784:デフォルトの名無しさん
19/03/10 09:53:19.84 5/+zyaBC.net
>>754
死ね
785:デフォルトの名無しさん
19/03/10 10:33:29.03 YmMiXd1Z.net
ガイジなど世間的には生まれた時点で死んだような存在だろネットでくらい許せ
786:デフォルトの名無しさん
19/03/10 18:44:45.56 uFsYqTSV.net
ruby禁止は浸透したがpowershellも禁止でおながいしまつ
787:デフォルトの名無しさん
19/03/10 19:04:53.21 w00/E2cH.net
プログラマー40歳限界説
788:デフォルトの名無しさん
19/03/10 19:42:00.71 XCpNHt+Q.net
ブックマークしてたpowershellのマニュアルのアドレスが変更されたみたいだ
誰か知りませんか?
789:デフォルトの名無しさん
19/03/10 19:50:01.61 eNJkLSXg.net
スレチ
790:デフォルトの名無しさん
19/03/11 02:31:05.67 Q8+quAlB.net
numpyでベクトルの配列の全要素に行列を掛けるにはどうしたらいいでしょ?
やりたい事は
vec=[[0,0],[1,1],[2,2]...]
mat=[[0,1],[1,2]]
result=[m & v for v in vec]
こんな感じです
791:デフォルトの名無しさん
19/03/11 05:21:09.87 pTTv+VC9.net
mat@vec
792:デフォルトの名無しさん
19/03/11 05:23:59.55 pTTv+VC9.net
vecの作り方によっては
mat@(vec.T)
793:デフォルトの名無しさん
19/03/11 07:42:02.40 R4ZESWdO.net
pythonできればc#もできますか?
pythonでゲームと、c#でwindowsのソフト両方を使ってますわ
794:デフォルトの名無しさん
19/03/11 08:49:44.07 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:デフォルトの名無しさん
19/03/11 08:50:31.50 IpMePMuQ.net
>>770
すみませんミスタイプしてました。求めたい結果は
result=[mat@v for v in vec]
ですね
796:デフォルトの名無しさん
19/03/11 12:16:20.15 hfHU2O5u.net
>>773
forいらんで
797:デフォルトの名無しさん
19/03/11 12:19:13.01 hfHU2O5u.net
こういうことかな
(mat@(vec.T)).T
798:デフォルトの名無しさん
19/03/11 17:11:44.97 mNeqJkGU.net
>>772
os.mkdirは途中に存在しないフォルダがあるとエラーしてしまうので
「os.makedirs()」をつかってみそ
799:デフォルトの名無しさん
19/03/11 17:33:25.52 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:デフォルトの名無しさん
19/03/11 17:36:22.93 mNeqJkGU.net
>>777
>>422
801:デフォルトの名無しさん
19/03/11 17:38:42.78 mNeqJkGU.net
とちゅうでおくってしまった
>>422がイイ(・∀・)こといってる気がするんだが
なんとか利用できないかな
802:デフォルトの名無しさん
19/03/11 19:53:46.76 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:デフォルトの名無しさん
19/03/11 19:57:35.25 PGatxMde.net
クリトリスですか?なるほど…
804:デフォルトの名無しさん
19/03/11 20:39:01.91 mSdvFdhb.net
print(*map(list, zip(*[map(int, input().split()) for i in range(int(input()))])))
805:デフォルトの名無しさん
19/03/11 21:57:53.69 pvnV5rIH.net
セクハラ通り越して放送禁止用語レベルだったんですね
>>780 こういうループの発想が湧きませんでした 参考にさせて頂きます
>>782 コレ使ってみます 関数1個1個はナントナク分かりましたが、何重も連なると自分のレベルは難しいです 時間かけて解読してみます
>>779-782 皆さんありがとうございました
806:デフォルトの名無しさん
19/03/11 22:05:12.11 IpMePMuQ.net
>>775
ディメンションがちゃうで言われますね
つまり座標配列全てにアフィン変換したいって事なんですがnumpyじゃ無理なんかな?
807:デフォルトの名無しさん
19/03/11 23:20:05.55 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:デフォルトの名無しさん
19/03/11 23:38:19.16 qe97t/2K.net
>>785
グロ
809:デフォルトの名無しさん
19/03/11 23:54:59.52 0HIo0fVP.net
>>780
>コードを書く前にcuntを辞書で引け
ゆとり教育では辞書使うなんて難易度の高いことはしない
810:デフォルトの名無しさん
19/03/12 00:08:58.95 KQFIYqiK.net
>>784
"アフィン変換 numpy"でググればなんか希望の物が引っかかるんじゃないのか
numpyを使ってアフィン変換をするライブラリなんかは誰か作っている気がする
811:デフォルトの名無しさん
19/03/12 01:19:04.31 Tg1PBlZE.net
>>780 cunt 辞書ひいた。 笑っちゃったよ。
1. a stupid or unpleasant person
2. -> HUMAN
a woman's vagina =sex organ
812:デフォルトの名無しさん
19/03/12 01:43:49.00 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:デフォルトの名無しさん
19/03/12 12:29:06.26 Le2Xhtue.net
引数のイメージなんですが、引数は材料で、材料を関数で調理器にかけるイメージでしょうか?
814:デフォルトの名無しさん
19/03/12 12:30:30.49 F9OOaHwl.net
戻り値は?
815:デフォルトの名無しさん
19/03/12 12:33:21.35 c3A0Gx7w.net
ひき肉を作る機械のイメージでええんやないの
上に入れる肉が引数、機械が関数、出てきたひき肉が戻り値
816:デフォルトの名無しさん
19/03/12 12:36:33.66 rf03pH6k.net
引数に肉しか入れてないのに勝手に台所のコショウが減ったり電気使われたりするのが副作用
817:デフォルトの名無しさん
19/03/12 12:39:17.36 Le2Xhtue.net
ひき肉が引数、調理器が関数、バーグが戻り値
ありがとうござ
818:デフォルトの名無しさん
19/03/12 12:41:44.81 Le2Xhtue.net
selfの意味ってなんですか?
単に関数を作成したときにデフォルトでついてくる引数という感じでしょうか。
だとしたらなんのためにですか?
読んでみたんですが、イマイチイメージが、、、
819:デフォルトの名無しさん
19/03/12 12:52:43.68 uvkzn3tS.net
>>796
selfは関数ではなくクラスのメソッドに付ける
Javaのthisみたいなもので、メソッドを呼び出したオブジェクト自身を受け取るための引数
メソッド内でメンバ変数を参照したり別のメソッドを呼び出したりする時にself.~ として使う
820:デフォルトの名無しさん
19/03/12 12:58:27.33 R/A89vkp.net
横からすいません
self、self以外を指定することはあるのでしょうか?
821:デフォルトの名無しさん
19/03/12 13:11:28.09 rdaDEiid.net
>>798
慣例的なもので言語制約ではない、が補完などに影響するかも
クラスメソッドではクラスが割り当てられるのでclsが使われる
822:デフォルトの名無しさん
19/03/12 13:16:23.13 rf03pH6k.net
hoge.myMethod(fuga, piyo)
myMethod(hoge, fuga, piyo)
みたいなイメージ
823:デフォルトの名無しさん
19/03/12 13:20:45.17 6Uu2j9Xc.net
>>784
馬鹿には無理
824:デフォルトの名無しさん
19/03/12 13:36:24.76 R/A89vkp.net
>>799
ありがとうございます
825:デフォルトの名無しさん
19/03/12 13:58:38.98 c3A0Gx7w.net
そもそも何でメソッドの引数にオブジェクト自身を渡すんやろうか
obj.method()みたいに呼び出すなら、どのオブジェクトをメソッドに渡すかわ明らかなんだから、省略できそうなのに
826:デフォルトの名無しさん
19/03/12 14:09:51.25 R/A89vkp.net
>>803
こういう渡し方をする言語、python以外にもあるんでしょうか
827:デフォルトの名無しさん
828:age
>>803 それはPythonのオブジェクト指向の実装方法とか基本理念によるもの、属性解決については https://docs.python.org/ja/3/howto/descriptor.html#definition-and-introduction self.meth()とcls.meth(self)の等価性を明示するみたいな論調も記憶にあるが公式なソースは忘れた
829:デフォルトの名無しさん
19/03/12 14:39:35.59 5JRn7Uik.net
>>804
perl
830:803
19/03/12 14:48:12.21 rdaDEiid.net
selfに対する直接の説明としてはちょっとアンカーが適切ではないか
URLリンク(docs.python.org)
「関数に基づく環境の上に構築」って所がミソやね、後付けと言われる所以
831:デフォルトの名無しさん
19/03/12 16:34:54.17 8KtfShI4.net
>>804
tcl
832:デフォルトの名無しさん
19/03/12 16:40:24.68 Le2Xhtue.net
>>797
よくわからないけどありがとうひき肉おじさん
833:デフォルトの名無しさん
19/03/12 17:17:23.48 8KtfShI4.net
わからないならレスしないでくださいうざいだけです
834:デフォルトの名無しさん
19/03/12 17:19:11.50 Le2Xhtue.net
インスタンス作成っていうのはメモリ上に領域を確保する作業ってことでいいんでしょうか。
835:デフォルトの名無しさん
19/03/12 17:21:39.56 zkYMqbGV.net
なにそれ
他のコード作業だとメモリを使用しないとでもw
836:デフォルトの名無しさん
19/03/12 17:23:18.47 zkYMqbGV.net
クラス定義内に大量の関数定義を入れると、そのクラスがインスタンス化されたときに、インスタンスに自我意識が生まれます
837:デフォルトの名無しさん
19/03/12 18:13:57.38 rf03pH6k.net
俺も3食インスタンスラーメンです
838:デフォルトの名無しさん
19/03/12 19:11:13.53 qLQHaQxA.net
selfはあってもなくても、どっちでも
よかったかもしらんが、
クラス外の普通の関数でも、いきなり
クラスのフレンド関数のようにしやすいといった、
モンキーパッチ的な利点もあるし、
一長一短。
839:デフォルトの名無しさん
19/03/13 05:29:22.97 Z4mQGBB0.net
pythonのselfの超簡単なサンプルを教えてください
調べてるんですが、わかりにくくて、、、
840:デフォルトの名無しさん
19/03/13 06:11:09.78 nAhixTo8.net
サンプルって…メソッドならインスタンスを受け取るために必須なだけだ
倣うほどの規範は無いと思うけど、オブジェクト指向が理解できてないの?
841:デフォルトの名無しさん
19/03/13 07:18:13.39 zpkiSS8W.net
>>817
オブジェクト指向の理解というよりPythonの仕様の気が・・
横なんですけど、例えばあるクラスを継承したクラスがいくつかあって、それぞれで同じメソッドをオーバーライドしている時、Pythonは渡されたインスタンスを見てどのメソッドを呼び出すか決めているんですか?
つまりインスタンスとメソッドは別々に管理されていて、呼び出す時にインスタンスとメソッドは結び付けられるとか。
842:デフォルトの名無しさん
19/03/13 07:28:44.40 Z4mQGBB0.net
>>817
オブジェクト指向はなんとなく
インスタンスを受け取るというのはよくわからないのですが
843:デフォルトの名無しさん
19/03/13 07:44:07.11 zpkiSS8W.net
>>819
私もです、>>807さんのリンクや後付け・・から思うに、
オブジェクト内にメソッドがあるのではなく、メソッドはオブジェクトの外に関数としてあって、その関数に対して「このオブジェクトのメソッドの様に振る舞え」と指示しているのかな、と感じました。
844:デフォルトの名無しさん
19/03/13 10:42:08.19 Nk0VyZbv.net
配列hogeを作成し、
print(hoge)を実行した時、[1. 2. 3. 4. 5.]の様に
数字にピリオドがついた時は浮動小数点型の配列なのでしょうか?
浮動小数点型の場合、整数型の配列にする方法はありますでしょうか?
845:デフォルトの名無しさん
19/03/13 10:51:02.04 x5gb1xdG.net
>>821
list(map(int,hoge))
846:デフォルトの名無しさん
19/03/13 11:00:58.72 Nk0VyZbv.net
>>822
ピリオドが無くなりました!
ありがとうございます
847:デフォルトの名無しさん
19/03/13 11:08:04.74 Z4mQGBB0.net
class Cat(object):
def __init__(self, name, weight):
self.name = name
self.weight = weight
このコードのselfはどういう意味なんでしょうか?
猫というオブジェクトの属性を表現しているクラスのようです
848:デフォルトの名無しさん
19/03/13 11:19:10.70 Y4yR4bDO.net
>>798
二項演算ならself使うと分かりにくいのでアリ、アプリカンド/アプリケータなど
self/other派も居るが
有名ライブラリだとmpmathがctx(計算の文脈、精度とか)渡してるね
849:デフォルトの名無しさん
19/03/13 11:20:56.58 Y4yR4bDO.net
x/yも見掛けるな
同種同士の同等な二項演算の定義に主体が入り込むのは気持ち悪いと思うよやっぱ
850:デフォルトの名無しさん
19/03/13 11:34:37.37 imKqJmF7.net
>>824
Cat(‘neko’, 5) などと書くと__init__が呼び出されてselfには作成されたCatのインスタンスが渡される
つまり
c = Cat(‘neko’, 5)
とした時cとselfは同じものを指す
851:デフォルトの名無しさん
19/03/13 12:31:52.80 Z4mQGBB0.net
selfの意味がいまいち理解できていないのですが、引数の設定されたクラスや関数自身を表すということですよね
で、self自体を出力してみました
class classname:
def defname(self):
print(self)
s =classname()
s.defname()
<__main__.classname object at 0x03EE2F30>
selfを設定しているのは関数なのですが、これでは関数自身ではなく、クラス自身ではないですか?
また、これはどういったときに役立つのですか?
環境はidleです
>>827
ありがとうございます
読み解いてみます
852:デフォルトの名無しさん
19/03/13 12:44:16.23 Ux8DzXrZ.net
>>828
>引数の設定されたクラスや関数自身を表すということですよね
うん
5ちゃんでは
インデント(連続してる半角スペース)が消えちまうので
めんどうでも全角スペース使って書きなおす(半角スペースを全角スペースに置換でおk)か
1に書いてあるような、ソースコード貼る専用のうpろだにうp
853:デフォルトの名無しさん
19/03/13 13:38:08.75 imKqJmF7.net
>>828
メソッドの中から別のメソッドを呼びたい時にselfが無いと詰む
854:デフォルトの名無しさん
19/03/13 15:00:34.67 Ux8DzXrZ.net
>>828
2系でやったら違う結果になるぞ
855:デフォルトの名無しさん
19/03/13 15:57:20.28 nAhixTo8.net
>>828
はい、いいえ。通常defで定義した関数自身を第1引数が表す事はありませんし
ついでにクラスへ定義した関数は、メンバー関数あるいはメソッドと呼びます
またクラス(型)も渡されていません、それはインスタンス(実体)です
オブジェクトとも呼ばれますけど意味が文脈に左右されるので置いといて
クラスメソッド(@classmethod)と修飾したときは、クラスが渡されます
文字列でいうならクラスはstr、'ABC'など具体的な物がインスタンスに相当し
その長さなどがインスタンスの属性と言えます(Pythonだと関数で取得するが
selfは>>797でも回答されるように他言語の(暗黙的に参照可能な)thisと同等で
その宣言の必要性は>>807に対する>>818や>>820の理解…は齟齬が生じる所もあるが
概念的にはメソッドだけども実装的には関数なので、()と呼び出された時ではなく
実体から関数が.で属性参照された時に、結び付けられたメソッドが生成されます
一連のレスからすると、引数が表すものに関数自身(callee)が出てくる辺り
メソッド以前に関数の定義・呼び出し自体の理解も怪しいのではなかろうか?
関数の操作対象として構造物というか実体が第1引数に渡されているのだが…
856:デフォルトの名無しさん
19/03/13 16:27:27.93 M+m6pFpm.net
はい(いいえ)
857:デフォルトの名無しさん
19/03/13 17:46:31.02 h9UFHds/.net
そやで、ちゃうで
858:デフォルトの名無しさん
19/03/13 17:48:54.93 MhYZY5Aj.net
はいいいえ
859:デフォルトの名無しさん
19/03/13 18:46:52.20 gkV5NrkZ.net
ちゃうちゃうちゃうんちゃう
860:デフォルトの名無しさん
19/03/13 19:03:05.32 jL6M634A.net
def yes(arg= None):
____print()
861:デフォルトの名無しさん
19/03/13 19:58:39.06 26FDLpbf.net
hoge = "ほげほげ!"
if hoge == "ほげほげ":
print("ほげほげ!)
else:
pinrt("げほげほ!")
862:デフォルトの名無しさん
19/03/13 20:00:19.07 Ux8DzXrZ.net
>>838
”がたりてない
863:デフォルトの名無しさん
19/03/13 20:21:08.59 1Wup6Az1.net
Pythonはswitch文が無いのが不満だったけど辞書使えば同じ様な事が出来ると最近気づいた
一番はswitchが必要になるロジックを組まない事だろうけど
864:デフォルトの名無しさん
19/03/13 20:32:12.62 Z4mQGBB0.net
↑selfについて回答ありがとうございました
865:デフォルトの名無しさん
19/03/13 20:34:50.72 Z4mQGBB0.net
class className():
def __init__(self, strA, strB):
self.str1 = strA
self.str2 = strB
test = className("Hello", "World!")
print(test.str1)
print(test.str2)
まだselfの意味について理解できていないので教えてください
クラスをインスタンス化したときに引数を設定することでinitが呼び出され、hellwとworld引数が、str1とstr2に代入されるということだと思います
この場合のselfはどんな役割をしているのですか?
selfをはずすと動作はしないようです
init関数自身とは?
866:デフォルトの名無しさん
19/03/13 20:34:55.83 Z4mQGBB0.net
class className():
def __init__(self, strA, strB):
self.str1 = strA
self.str2 = strB
test = className("Hello", "World!")
print(test.str1)
print(test.str2)
まだselfの意味について理解できていないので教えてください
クラスをインスタンス化したときに引数を設定することでinitが呼び出され、hellwとworld引数が、str1とstr2に代入されるということだと思います
この場合のselfはどんな役割をしているのですか?
selfをはずすと動作はしないようです
init関数自身とは?
867:デフォルトの名無しさん
19/03/13 20:41:11.30 Z4mQGBB0.net
インスタンス変数を使うときにselfをつけることですが、そういうおまじないということですか?
868:デフォルトの名無しさん
19/03/13 20:47:03.94 Ux8DzXrZ.net
>>829を読んでも理解してないということはよくわかった
869:デフォルトの名無しさん
19/03/13 21:14:16.67 nAhixTo8.net
>>842-843
まず引数を設定しようがしまいがインスタンス化したら初期化のために__init__は呼ばれる
selfはselfを書いた関数自身ではなく、メソッドとして属するクラスのインスタンスを表す
selfから属性参照しなければstr1やstr2はローカル変数になって抜けたら破棄されてしまう
結果としてtestに代入されるインスタンスを参照するために必要だから書く
870:デフォルトの名無しさん
19/03/13 21:16:12.72 ZMFJ1a5n.net
>>843
俺も初心者だけど、Pythonにはクラスオブジェクトってのがあつて、クラス定義が実行されるとそのクラスオブジェクトってのが作られるらしいぞ。クラス定義が実行させるって何ぞ?と思ったけどそうらしい。
でインスタンスはそのクラスオブジェクトから作られるらしいぞ。
つまりそのinitはコンストラクタというよりクラスからクラスオブジェクトを作るためのinitだったりするかも。
self渡す必要があるってことは、そのinitは他の言語じゃプログラマが意識しない部分の可能性。クラスのインスタンス化の一層下にあるのかな?
871:デフォルトの名無しさん
19/03/13 21:22:48.95 M+m6pFpm.net
シンタックスは
def self.__init__(strA, strB):
とかではダメだったの?
書いてもないのに第一引数にself入ってくるのと大差なくない?
872:デフォルトの名無しさん
19/03/13 21:27:46.46 ZImJqTUY.net
>>824
self が付いているのは、インスタンス変数じゃないの?
Ruby では、@ がインスタンス変数
class Cat
def initialize( name, weight )
@name = name
@weight = weight
end
end
p Cat.new( "bob", 5 )
# <Cat: @name="bob", @weight=5>
873:デフォルトの名無しさん
19/03/13 21:43:36.51 nAhixTo8.net
>>848
Pythonに複合文としてのメソッド定義はなく、クラスに書いた関数がメソッドとして扱われる
そのメカニズムはHowToでも記される、参照した属性がクラススコープで定義された関数なら
インスタンスと関数が参照されたバウンドメソッドオブジェクトを返し、__call__が呼ばれる
874:847
19/03/13 21:53:09.68 ZImJqTUY.net
Ruby では、@ がインスタンス変数で、
self は、クラス直下ではクラスを表し、メソッド内では、インスタンスを表す。
コンテキスト(文脈)によって、self の意味は変わる。
また特異クラスも、よく出てくる
class Cat
p self #=> Cat
def initialize( name, weight )
@name = name
@weight = weight
p self #=> <Cat: @name="bob", @weight=5>
end
end
Cat.new( "bob", 5 )
Ruby で、オブジェクト指向・関数型をみっちり学んでから、
Python, JavaScript を学ぶ方がよい
875:デフォルトの名無しさん
19/03/13 21:55:25.72 bUFEpZHr.net
>>849>>851
うるっせえな!
スレタイ読めねーのかカス!!
死ね!死んで消えろゴミ!!
876:デフォルトの名無しさん
19/03/14 03:27:13.64 4WTRjlYm.net
相手にするからつけあがるんだよ
877:デフォルトの名無しさん
19/03/14 03:37:18.44 nL4uJ2zh.net
終わりのないのが『終わり』
それが『RWBY』
878:デフォルトの名無しさん
19/03/14 08:25:07.71 /JPtJCUD.net
a = 'hoge'
type(a)
これを実行すると<class 'str'>が表示される
これは変数aが指してるオブジェクトの型がstr型という意味でいいんだよね
一方で、文字列はシーケンス型でもあるからインデックスでアクセスしたり、スライスしたり出来る
この文字列がシーケンス型というのはpython上でどうやって確認するんや
879:デフォルトの名無しさん
19/03/14 08:34:53.42 lGFaI2Uv.net
>>855
シーケンス型の実体は存在しない
失敗しないことを天に祈りつつ勇敢にforに投入する、がPythonの思想的には正しい
厳密にやりたいなら型アノテーションでSequenceあるけど、型アノテーションなんか誰も使ってない
880:デフォルトの名無しさん
19/03/14 10:12:27.31 QThoqyRe.net
>>855
hasattr(a, ‘__iter__’)
Pythonではシーケンス型の事をiterableなオブジェクトという
forにiterableを渡すと__iter__()が呼ばれるのでこれの有無を確認すれば分かる
881:デフォルトの名無しさん
19/03/14 10:14:27.51 QThoqyRe.net
>>855
それとiterableであることとスライスできるのは別の機能
インデックスやスライスは__getitem__()で実装される
882:デフォルトの名無しさん
19/03/14 11:06:23.42 /JPtJCUD.net
レスありがとう
俺はstr型はシーケンス型を継承してるから、シーケンス型のようにも振る舞うと勝手に思ってたけど違うのね
str型はiterableな属性を持ってるから、for文に渡して繰り返しの処理が出来るというのはわかった
それなら、str型がsequenceableな属性を持ってるからスライスやインデックスのアクセスが出来るというのなら理解できるんだけど、シーケンス型で属性じゃないのよね
なんか混乱してきたわ(´・ω・`)
883:デフォルトの名無しさん
19/03/14 11:16:27.87 r+Z4K3kn.net
>>859
IterableもSequenceと同じく、クラスが満たすべき性質がドキュメント上や型アノテーションで定義されているだけの実体のない型だ
Pythonではそういう実体のない(ドキュメントや型アノテーションにしか登場しない)仮想的な型のことを一般にプロトコルと呼ぶ
Javaのinterfaceに近い概念だが、interfaceとは違ってオブジェクトに付随する型としての実体を持たないという点が異なる
884:デフォルトの名無しさん
19/03/14 11:26:52.83 RE7f17De.net
>>859
pythonの場合、forに渡せるとかの機能は単に__xxx__という名前の特殊メソッドが実装されているかどうかで決まる
885:デフォルトの名無しさん
19/03/14 11:41:55.90 jNBQt8MR.net
>>860
Pythonにはstr、listというオブジェクトは存在するが、sequence というオブジェクトは存在しない
だが、str 、listどちらもsequence型である
886:デフォルトの名無しさん
19/03/14 12:41:19.77 r+Z4K3kn.net
>>862
だからそう言ってるつもりだが
887:デフォルトの名無しさん
19/03/14 12:47:55.74 YiVNNcx0.net
じゃあjavaよりgoのが近いんじゃ?
888:デフォルトの名無しさん
19/03/14 13:23:53.72 jNBQt8MR.net
>>863
適当にアンカーつけてレスしたんよ
なんかごめんな
889:847
19/03/14 13:28:05.85 tsxAqnNH.net
参考までに、Ruby では、Array -> Enumerable (子 -> 親)
自クラスに、each を定義して、Enumerable モジュールをinclude すれば、
Enumerable のすべてのメソッドが使える(mix-in)(内部イテレータ)
Enumerable とは繰り返しを行なうクラスのための Mix-in。
このモジュールの メソッドは全て、eachを用いて定義されているので、
インクルード するクラスには、eachが定義されていなければなりません
each を定義しない場合は、Enumerator というラッパークラスで、Enumerable のメソッドが使える(外部イテレータ)
外部イテレータは、Enumerator.next, rewind などで繰り返しを進めたり・巻き戻したり、制御できる
mix-in とは継承ではないけど、呼び出される関数探索の継承チェーンに割り込む機能。
Java のinterface みたいなもの。
Duck Typing と言って、そのメソッドに反応するかどうか
子 -> mix-in -> 親
890:デフォルトの名無しさん
19/03/14 13:31:58.94 r+Z4K3kn.net
>>864
goのは型が明示的にinterfaceを実装していなくても必要なメソッドがあれば受け入れるstructual subtypingという考え方
Pythonは duck typing なので本来はそれに近いのだが、型ヒントがstructual subtypingではなく明示的にクラスがインターフェイスを継承する必要がある
よってpythonにおいては型ヒントを考慮すればgoよりJavaに近い
891:デフォルトの名無しさん
19/03/14 13:52:11.73 q8OuUl64.net
rubyをdisる訳じゃないけど
初心者でpython学習し始めたところなら
rubyと比べない方が良いよ
覚えることが増えるだけでメリット無いから
892:デフォルトの名無しさん
19/03/14 13:56:28.26 1qhaQ5mP.net
これから試験受けるんだが落ちそう
893:デフォルトの名無しさん
19/03/14 15:34:12.56 1qhaQ5mP.net
うかったんご
894:デフォルトの名無しさん
19/03/14 16:11:42.58 NTHRrjbg.net
おめでと
895:デフォルトの名無しさん
19/03/14 16:56:04.19 lcXwIoo8.net
型アノテーションは、関数の出入り口と、
なんの型が分かりにくいローカル変数には
つける。
付けることで補完が強化される場合と、
しばしば補完を逆に妨げる場合があるので、
うまく折り合いを付けて付記する感じやな。
896:デフォルトの名無しさん
19/03/14 18:13:57.50 1qhaQ5mP.net
あざます
897:デフォルトの名無しさん
19/03/14 18:55:16.95 cYjqrp0Z.net
>>846
ありがとうございました
898:デフォルトの名無しさん
19/03/14 19:44:05.42 prpM2HGX.net
最適化には何の関係もないのよね型指定
899:デフォルトの名無しさん
19/03/14 19:58:50.87 r+Z4K3kn.net
>>875
むしろソースコードのパースの負荷が増えて僅かに遅くなるだろうな
900:デフォルトの名無しさん
19/03/14 21:29:10.91 DYXE/n/d.net
Ruby ←まず名前がダサい
Python ←カッコイイ
901:デフォルトの名無しさん
19/03/14 21:37:41.09 Cgb2oqJn.net
pythonだけ見るとカッコイイけど元はモンティ・パイソンなんだよな
902:デフォルトの名無しさん
19/03/14 21:48:50.71 nL4uJ2zh.net
URLリンク(st.cdjapan.co.jp)
903:デフォルトの名無しさん
19/03/14 21:50:35.71 nL4uJ2zh.net
URLリンク(images.idgesg.net)
904:デフォルトの名無しさん
19/03/15 08:57:12.14 Oo+XcCcU.net
pythonのコーディングに少しづつ慣れてきたせいで,のあとに半角スペースを挿入してしまうクセが付いてしまいました
簡単なテストのためダミーでcsv作る際に,後ろにに半角スペース入れるせいでcsvDictReaderで読んでkey指定したときにkeyErrorが出てしまい数十分ですが悩んでしまいました
今後はskipinitialspaceをtrueにして使います
ありがとうございました
905:デフォルトの名無しさん
19/03/15 09:55:37.05 LNWMUSed.net
pythonに限らずほぼ全てのプログラミング言語でそういう癖が付くかと思うしそもそも欧米圏の言語でも全てそうだがお前何か言いがかりでも付けた
906:いの?
907:デフォルトの名無しさん
19/03/15 12:49:50.87 zt0rtKct.net
python はビジュアル系スタジオみたいな統合環境は無いの?
908:デフォルトの名無しさん
19/03/15 12:51:57.85 EeWTkT4V.net
ビジュアル系スタジオちょっと好き
909:デフォルトの名無しさん
19/03/15 13:13:04.71 88mLDigX.net
>>883 あんたも好きね。 チャーミングなおっぱいがあるよ。 PyCharm
910:デフォルトの名無しさん
19/03/15 13:25:05.27 1iRTQcZ+.net
pycharm ceがタダで使えるのは助かるなぁ
911:デフォルトの名無しさん
19/03/15 14:18:08.50 SEjqglYP.net
最新鋭の望遠鏡で使われてる
タイパンがカッコ良かった
UKシュミット望遠鏡自体は数十年の年季もんだけど
タイパン付けると最新鋭に変身してた
912:デフォルトの名無しさん
19/03/15 14:21:07.58 SEjqglYP.net
これね
URLリンク(www.youtube.com)
913:デフォルトの名無しさん
19/03/15 18:27:46.26 HkVkKV93.net
オブジェクトをフォルダと考えるのは間違いなのですか
914:デフォルトの名無しさん
19/03/15 18:38:30.61 PFD13TRH.net
考えてもいいぜ
915:デフォルトの名無しさん
19/03/15 18:58:10.65 8Z2zh4Or.net
Python初心者です。
scikit-learnで学習した学習結果を他の言語(C#)で利用したいと考えてます。
が、どうしたらいいのかわかりません。
どなたかご教授願います。
916:デフォルトの名無しさん
19/03/15 23:30:46.48 /jMwhNVt.net
最終的に何をしたいのかをもう少し具体的に書いたほうが良いと思う
個人的に言語は統一した方が楽と思うよ
917:デフォルトの名無しさん
19/03/15 23:48:43.20 8Z2zh4Or.net
scikit-learnでじゃんけんの人間の癖を学習させて、
そこそこの制度で予想できるようになったので、それをスマホアプリとして公開したいという欲が湧いてきました。
Pythonではスマホアプリの開発は難しそうなのでその学習結果をC#に移植したいと考えてるのですが、
そういう事は可能ですか?
918:デフォルトの名無しさん
19/03/16 00:53:29.77 lomlnXfv.net
!?
919:デフォルトの名無しさん
19/03/16 06:12:09.99 MtyeuN+5.net
可能
pythonに不可能は無い
920:デフォルトの名無しさん
19/03/16 10:56:59.10 Eza8KstC.net
>>893 iOS なら、Pythonista で簡単にアプリを作れるぞ。
Androidでもできるだろ。
そもそもiOSだと、C#じゃなくObjective-C やSwift になるからかなり垣根は高いぞ。
因みにPythonista からはObjective-C のライブラリを使うこともできるし自由に呼び出すこともできる。
なお、scikit-learn そのものをPythonistaで使うことはできない。 numpy は使えるが、scipy がインストールできない。
921:デフォルトの名無しさん
19/03/16 11:10:13.00 INaBYg0f.net
いやC#つってんだからUnityで作るんだろJK
あれゲーム作るの簡単だからいいよな~
922:デフォルトの名無しさん
19/03/16 11:18:22.65 mXGVm9Ao.net
>>896
ありがとうございます。
Androidアプリを作られればIOSには対応できなくてもよいと考えてます。
Androidでscikit-learnを使うのは難しいでしょうか?
923:デフォルトの名無しさん
19/03/16 11:20:10.33 mXGVm9Ao.net
Unityって物理エンジンですよね?
scikit-learnのように機械学習もできるのですか?
924:デフォルトの名無しさん
19/03/16 11:31:31.62 Slvebd/s.net
学習機能は通信を介したサービスとして提供したら
scikit-learnはサーバー側で動いてりゃ良いんだし
925:デフォルトの名無しさん
19/03/16 11:44:44.11 +8YpvTs6.net
>>900
そっちの方が良いと思う
機械学習の多言語移植は考えただけで血の気が引く
kerasならまだしも、scikit-learnは依存地獄が酷かった。今は大分マシ担ってるとは思うけど
926:デフォルトの名無しさん
19/03/16 11:48:05.65 d/4KgbH7.net
じゃんけんするのにサーバーと通信するのは草
でもいまどきそんなもんなのか?
927:デフォルトの名無しさん
19/03/16 11:52:33.53 +8YpvTs6.net
さすがに半分テストアプリだと思うけど、既に超敷居が高い
928:デフォルトの名無しさん
19/03/16 11:53:42.85 mXGVm9Ao.net
機械学習の移植は難しいものなんですね。
サーバーにPythonを置けばいいのですね。
ありがとうございます。
929:デフォルトの名無しさん
19/03/16 11:58:21.60 eO5a7zjy.net
学習からC#でやり直すわけにはいかないの?
オブジェクト指向の機械学習ライブラリなんて言語によらず使い方似てるからそっちのが楽じゃない?
930:デフォルトの名無しさん
19/03/16 12:01:14.33 eO5a7zjy.net
「Unity 機械学習」
でググってもいろいろでてくるし
931:デフォルトの名無しさん
19/03/16 12:05:08.07 mXGVm9Ao.net
C#で機械学習ですか!
scikit-learnがすごく簡単だったのでscikit-learnで出来たらと考えてました。
使い方が似ているのならその選択も検討してみます。
ありがとうございます。
932:デフォルトの名無しさん
19/03/16 12:12:34.74 Eza8KstC.net
せっかくPython の勉強を始めたんだから、Python でゲーム開発までやれば良いのに、じゃんけんアプリなんて簡単でしょ。
どんなPython ゲームライブラリが適切なのかは知らないけど。
933:デフォルトの名無しさん
19/03/16 12:14:27.10 SlIDoTSl.net
selfについて何度も聞いてるカスなんですが、まだ意味が理解できてません
このコードの場合どういった意味を持ちますか?
インスタンス自身と言われてもイメージがつきません
記憶領域という説明も見たことがありますが、これはどういう意味でしょうか
URLリンク(codepad.org)
class apple:
def __init__(self,price,weight):
self.p = price
self.w = weight
def print(self):
print(self.p)
print(self.w)
s = apple("100yen","300g")
s2 = apple("1000yen","1000g")
s.print()
s2.print()
934:デフォルトの名無しさん
19/03/16 12:15:53.61 SlIDoTSl.net
訂正です
×このコードの場合どういった意味を持ちますか?
○このコードのようにselfを使うメリットはなんですか?
935:デフォルトの名無しさん
19/03/16 12:24:28.76 Eza8KstC.net
Android ならQpython にはKivy がバンドルされてるらしいし、kivy で良いんじゃないの?
936:デフォルトの名無しさん
19/03/16 12:29:58.42 +8YpvTs6.net
>>909
コードが変なので修正した
URLリンク(codepad.org)
メモリ上のデータをイメージできれば簡単に理解できるんだけどね
インスタンスとか言っても逆に分からんだろうな
URLリンク(brain.cc.kogakuin.ac.jp)
URLリンク(cpp.aquariuscode.com)
937:デフォルトの名無しさん
19/03/16 12:38:34.92 mXGVm9Ao.net
>>908
Pythonは機械学習やディープラーニングを始めたくて最近勉強し始めました。
勉強してくうちにアプリを公開したいと思うようになった次第ですw
GUIはC#の方が簡単そうなので2つの言語をうまく連携できればと思ったのですが、
難しいようですね。
もちろんPythonはこれからも使いたいと思います!
938:デフォルトの名無しさん
19/03/16 12:58:16.11 Cc4OYSLe.net
>>909
まず自分でクラス書く前にライブラリでクラス使ってみたらわかるだろ
pandasのチュートリアルとか何でもいいけどインスタンス作ってメソッド使ってインスタンス変数参照したらself何なのかも見えてくる メモリ上の何とかなんか意識しなくていい
939:デフォルトの名無しさん
19/03/16 13:11:48.23 eO5a7zjy.net
「入門python3」を一冊買ってやろう。
940:デフォルトの名無しさん
19/03/16 18:05:24.13 fe/BGgDT.net
vscodeとintellijのpython機能で試したのですが
awsのsdk boto3でインスタンス化したクライアントに対してオートコンプリートを働くようにするのってどうしたらよいでしょうか?
以下のようにして変数cを作っても、変数cをBaseClient型としか認識してくれないので、s3関連のメソッドがオートコンプリートで出てきてくれません。
c = boto3.client('s3')
もちろん実行時はちゃんとs3の型になるのでコードを動かす事は出来るのですが、オートコンプリート無しはちょっときついので、なんとかして出す方法があれば教えてください。
941:デフォルトの名無しさん
19/03/16 18:30:45.43 SlIDoTSl.net
>>914
ライブラリでクラスを書くとはなんのことですか?
>>912
c++がわかりません
selfはメモリ領域を確保するために必要になるもの、という認識でいいんでしょうか?おそらくインスタンスを作った時点でメモリが確保されるのかと思いますが。
942:デフォルトの名無しさん
19/03/16 18:36:03.43 YxxaJZky.net
>>916
型アノテーションで変数の型を明示的に指定する
943:デフォルトの名無しさん
19/03/16 18:53:42.59 +8YpvTs6.net
>>917
・インスタンスを作成
・メモリ領域を確保
・self=インスタンス
この辺はもう全部イコールで考えても構わない
例外的にstaticやglobalでインスタンス外にメモリ領域を確保することも出来るけど
図で言うとこんな感じ
URLリンク(i.imgur.com)
944:デフォルトの名無しさん
19/03/16 19:28:51.03 sQCNGdE3.net
>>917
インスタンスを作った時点でメモリが確保は良い。でも確保にselfは関係ない
内部だと__init__より前に__new__が呼び出され、そこでメモリ確保が行われる
語弊を恐れずに言ってしまえば、selfはそのメモリがどこか位置を示すものだ
メリットがどうとかじゃない、sとs2は同じ型だが別物だろう、それを区別するために必要なんだ
945:デフォルトの名無しさん
19/03/16 19:33:23.24 1feDyboY.net
>>919
「のタイミング!」
ですか?
946:デフォルトの名無しさん
19/03/16 20:16:22.51 SlIDoTSl.net
>>919
>>920
ありがとうございます
あれ?これってもしかしてポインタというやつなんですか?pythonの場合そういった呼ばれ方は見たことがありませんが
URLリンク(wa3.i-3-i.info)
947:デフォルトの名無しさん
19/03/16 20:31:38.84 INaBYg0f.net
山椒
948:デフォルトの名無しさん
19/03/16 21:47:12.09 +8YpvTs6.net
>>922
似たようなもんで「参照」
ポインタと参照の違い
URLリンク(qiita.com)
URLリンク(cocodrips.hateblo.jp)
メモリ上にインスタンスが展開されてるイメージができれば大体ok
949:デフォルトの名無しさん
19/03/16 22:04:48.14 /h3gEsxd.net
C言語使わない人にその教え方はどうなのよ。悪いことは言わないから「入門python3」を買って一通りやろう。
950:デフォルトの名無しさん
19/03/16 22:11:31.40 431M+yCA.net
入門python3ってあんまりレビューが良くないね
951:847
19/03/16 23:16:52.98 1E15fsAJ.net
インスタンスや、self がわからないの?
オブジェクト指向の基本だよ
self は、そのインスタンスを指す。
Ruby では、
class Cat
def initialize( name, weight )
@name = name
@weight = weight
end
end
p bob = Cat.new( "bob", 5 )
p alice = Cat.new( "alice", 4 )
new で、Cat というひな形から、各インスタンスを作る(実体化)
bob は、<Cat: @name="bob", @weight=5>
alice は、<Cat: @name="alice", @weight=4>
Rubyの、@name = name が、Python では、self.name = name になる。
Rubyではインスタンス変数は、@ で表すけど、pythonではself を付ける
インスタンス変数とは、各インスタンスで異なる部分。
一方、クラス変数とは、そのクラス(すべてのインスタンス)で共通の部分。
Rubyでは一々、selfを付けなくても良いように、Rubyの実装を、かなり頑張って作っている。
self.name よりも、@name の方がわかりやすいから!
オブジェクト指向・関数型は、Rubyで学んだ方がよい。
Python, JavaScript, Kotlin にも応用できるから