- 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
- 862 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:00:19.07 ID:Ux8DzXrZ.net]
- >>838
”がたりてない
- 863 名前:デフォルトの名無しさん [2019/03/13(水) 20:21:08.59 ID:1Wup6Az1.net]
- Pythonはswitch文が無いのが不満だったけど辞書使えば同じ様な事が出来ると最近気づいた
一番はswitchが必要になるロジックを組まない事だろうけど
- 864 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:32:12.62 ID:Z4mQGBB0.net]
- ↑selfについて回答ありがとうございました
- 865 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:34:50.72 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:34:55.83 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:41:11.30 ID:Z4mQGBB0.net]
- インスタンス変数を使うときにselfをつけることですが、そういうおまじないということですか?
- 868 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:47:03.94 ID:Ux8DzXrZ.net]
- >>829を読んでも理解してないということはよくわかった
- 869 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:14:16.67 ID:nAhixTo8.net]
- >>842-843
まず引数を設定しようがしまいがインスタンス化したら初期化のために__init__は呼ばれる selfはselfを書いた関数自身ではなく、メソッドとして属するクラスのインスタンスを表す selfから属性参照しなければstr1やstr2はローカル変数になって抜けたら破棄されてしまう 結果としてtestに代入されるインスタンスを参照するために必要だから書く
- 870 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:16:12.72 ID:ZMFJ1a5n.net]
- >>843
俺も初心者だけど、Pythonにはクラスオブジェクトってのがあつて、クラス定義が実行されるとそのクラスオブジェクトってのが作られるらしいぞ。クラス定義が実行させるって何ぞ?と思ったけどそうらしい。 でインスタンスはそのクラスオブジェクトから作られるらしいぞ。 つまりそのinitはコンストラクタというよりクラスからクラスオブジェクトを作るためのinitだったりするかも。 self渡す必要があるってことは、そのinitは他の言語じゃプログラマが意識しない部分の可能性。クラスのインスタンス化の一層下にあるのかな?
- 871 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:22:48.95 ID:M+m6pFpm.net]
- シンタックスは
def self.__init__(strA, strB): とかではダメだったの? 書いてもないのに第一引数にself入ってくるのと大差なくない?
- 872 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:27:46.46 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:43:36.51 ID:nAhixTo8.net]
- >>848
Pythonに複合文としてのメソッド定義はなく、クラスに書いた関数がメソッドとして扱われる そのメカニズムはHowToでも記される、参照した属性がクラススコープで定義された関数なら インスタンスと関数が参照されたバウンドメソッドオブジェクトを返し、__call__が呼ばれる
- 874 名前:847 mailto:sage [2019/03/13(水) 21:53:09.68 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:55:25.72 ID:bUFEpZHr.net]
- >>849>>851
うるっせえな! スレタイ読めねーのかカス!! 死ね!死んで消えろゴミ!!
- 876 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 03:27:13.64 ID:4WTRjlYm.net]
- 相手にするからつけあがるんだよ
- 877 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 03:37:18.44 ID:nL4uJ2zh.net]
- 終わりのないのが『終わり』
それが『RWBY』
- 878 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 08:25:07.71 ID:/JPtJCUD.net]
- a = 'hoge'
type(a) これを実行すると<class 'str'>が表示される これは変数aが指してるオブジェクトの型がstr型という意味でいいんだよね 一方で、文字列はシーケンス型でもあるからインデックスでアクセスしたり、スライスしたり出来る この文字列がシーケンス型というのはpython上でどうやって確認するんや
- 879 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 08:34:53.42 ID:lGFaI2Uv.net]
- >>855
シーケンス型の実体は存在しない 失敗しないことを天に祈りつつ勇敢にforに投入する、がPythonの思想的には正しい 厳密にやりたいなら型アノテーションでSequenceあるけど、型アノテーションなんか誰も使ってない
- 880 名前:デフォルトの名無しさん [2019/03/14(木) 10:12:27.31 ID:QThoqyRe.net]
- >>855
hasattr(a, ‘__iter__’) Pythonではシーケンス型の事をiterableなオブジェクトという forにiterableを渡すと__iter__()が呼ばれるのでこれの有無を確認すれば分かる
- 881 名前:デフォルトの名無しさん [2019/03/14(木) 10:14:27.51 ID:QThoqyRe.net]
- >>855
それとiterableであることとスライスできるのは別の機能 インデックスやスライスは__getitem__()で実装される
- 882 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 11:06:23.42 ID:/JPtJCUD.net]
- レスありがとう
俺はstr型はシーケンス型を継承してるから、シーケンス型のようにも振る舞うと勝手に思ってたけど違うのね str型はiterableな属性を持ってるから、for文に渡して繰り返しの処理が出来るというのはわかった それなら、str型がsequenceableな属性を持ってるからスライスやインデックスのアクセスが出来るというのなら理解できるんだけど、シーケンス型で属性じゃないのよね なんか混乱してきたわ(´・ω・`)
- 883 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 11:16:27.87 ID:r+Z4K3kn.net]
- >>859
IterableもSequenceと同じく、クラスが満たすべき性質がドキュメント上や型アノテーションで定義されているだけの実体のない型だ Pythonではそういう実体のない(ドキュメントや型アノテーションにしか登場しない)仮想的な型のことを一般にプロトコルと呼ぶ Javaのinterfaceに近い概念だが、interfaceとは違ってオブジェクトに付随する型としての実体を持たないという点が異なる
- 884 名前:デフォルトの名無しさん [2019/03/14(木) 11:26:52.83 ID:RE7f17De.net]
- >>859
pythonの場合、forに渡せるとかの機能は単に__xxx__という名前の特殊メソッドが実装されているかどうかで決まる
- 885 名前:デフォルトの名無しさん [2019/03/14(木) 11:41:55.90 ID:jNBQt8MR.net]
- >>860
Pythonにはstr、listというオブジェクトは存在するが、sequence というオブジェクトは存在しない だが、str 、listどちらもsequence型である
- 886 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 12:41:19.77 ID:r+Z4K3kn.net]
- >>862
だからそう言ってるつもりだが
- 887 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 12:47:55.74 ID:YiVNNcx0.net]
- じゃあjavaよりgoのが近いんじゃ?
- 888 名前:デフォルトの名無しさん [2019/03/14(木) 13:23:53.72 ID:jNBQt8MR.net]
- >>863
適当にアンカーつけてレスしたんよ なんかごめんな
- 889 名前:847 mailto:sage [2019/03/14(木) 13:28:05.85 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 13:31:58.94 ID:r+Z4K3kn.net]
- >>864
goのは型が明示的にinterfaceを実装していなくても必要なメソッドがあれば受け入れるstructual subtypingという考え方 Pythonは duck typing なので本来はそれに近いのだが、型ヒントがstructual subtypingではなく明示的にクラスがインターフェイスを継承する必要がある よってpythonにおいては型ヒントを考慮すればgoよりJavaに近い
- 891 名前:デフォルトの名無しさん [2019/03/14(木) 13:52:11.73 ID:q8OuUl64.net]
- rubyをdisる訳じゃないけど
初心者でpython学習し始めたところなら rubyと比べない方が良いよ 覚えることが増えるだけでメリット無いから
- 892 名前:デフォルトの名無しさん [2019/03/14(木) 13:56:28.26 ID:1qhaQ5mP.net]
- これから試験受けるんだが落ちそう
- 893 名前:デフォルトの名無しさん [2019/03/14(木) 15:34:12.56 ID:1qhaQ5mP.net]
- うかったんご
- 894 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 16:11:42.58 ID:NTHRrjbg.net]
- おめでと
- 895 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 16:56:04.19 ID:lcXwIoo8.net]
- 型アノテーションは、関数の出入り口と、
なんの型が分かりにくいローカル変数には つける。 付けることで補完が強化される場合と、 しばしば補完を逆に妨げる場合があるので、 うまく折り合いを付けて付記する感じやな。
- 896 名前:デフォルトの名無しさん [2019/03/14(木) 18:13:57.50 ID:1qhaQ5mP.net]
- あざます
- 897 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 18:55:16.95 ID:cYjqrp0Z.net]
- >>846
ありがとうございました
- 898 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 19:44:05.42 ID:prpM2HGX.net]
- 最適化には何の関係もないのよね型指定
- 899 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 19:58:50.87 ID:r+Z4K3kn.net]
- >>875
むしろソースコードのパースの負荷が増えて僅かに遅くなるだろうな
- 900 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:29:10.91 ID:DYXE/n/d.net]
- Ruby ←まず名前がダサい
Python ←カッコイイ
- 901 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:37:41.09 ID:Cgb2oqJn.net]
- pythonだけ見るとカッコイイけど元はモンティ・パイソンなんだよな
- 902 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:48:50.71 ID:nL4uJ2zh.net]
- st.cdjapan.co.jp/pictures/l/04/02/NEOGDS-244522.jpg
- 903 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:50:35.71 ID:nL4uJ2zh.net]
- https://images.idgesg.net/images/article/2018/07/python-100763894-large.jpg
- 904 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 08:57:12.14 ID:Oo+XcCcU.net]
- pythonのコーディングに少しづつ慣れてきたせいで,のあとに半角スペースを挿入してしまうクセが付いてしまいました
簡単なテストのためダミーでcsv作る際に,後ろにに半角スペース入れるせいでcsvDictReaderで読んでkey指定したときにkeyErrorが出てしまい数十分ですが悩んでしまいました 今後はskipinitialspaceをtrueにして使います ありがとうございました
- 905 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 09:55:37.05 ID:LNWMUSed.net]
- pythonに限らずほぼ全てのプログラミング言語でそういう癖が付くかと思うしそもそも欧米圏の言語でも全てそうだがお前何か言いがかりでも付けた
- 906 名前:いの? []
- [ここ壊れてます]
- 907 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 12:49:50.87 ID:zt0rtKct.net]
- python はビジュアル系スタジオみたいな統合環境は無いの?
- 908 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 12:51:57.85 ID:EeWTkT4V.net]
- ビジュアル系スタジオちょっと好き
- 909 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 13:13:04.71 ID:88mLDigX.net]
- >>883 あんたも好きね。 チャーミングなおっぱいがあるよ。 PyCharm
- 910 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 13:25:05.27 ID:1iRTQcZ+.net]
- pycharm ceがタダで使えるのは助かるなぁ
- 911 名前:デフォルトの名無しさん [2019/03/15(金) 14:18:08.50 ID:SEjqglYP.net]
- 最新鋭の望遠鏡で使われてる
タイパンがカッコ良かった UKシュミット望遠鏡自体は数十年の年季もんだけど タイパン付けると最新鋭に変身してた
- 912 名前:デフォルトの名無しさん [2019/03/15(金) 14:21:07.58 ID:SEjqglYP.net]
- これね
https://www.youtube.com/watch?v=xrumMTsFkPY
- 913 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 18:27:46.26 ID:HkVkKV93.net]
- オブジェクトをフォルダと考えるのは間違いなのですか
- 914 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 18:38:30.61 ID:PFD13TRH.net]
- 考えてもいいぜ
- 915 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 18:58:10.65 ID:8Z2zh4Or.net]
- Python初心者です。
scikit-learnで学習した学習結果を他の言語(C#)で利用したいと考えてます。 が、どうしたらいいのかわかりません。 どなたかご教授願います。
- 916 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 23:30:46.48 ID:/jMwhNVt.net]
- 最終的に何をしたいのかをもう少し具体的に書いたほうが良いと思う
個人的に言語は統一した方が楽と思うよ
- 917 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 23:48:43.20 ID:8Z2zh4Or.net]
- scikit-learnでじゃんけんの人間の癖を学習させて、
そこそこの制度で予想できるようになったので、それをスマホアプリとして公開したいという欲が湧いてきました。 Pythonではスマホアプリの開発は難しそうなのでその学習結果をC#に移植したいと考えてるのですが、 そういう事は可能ですか?
- 918 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 00:53:29.77 ID:lomlnXfv.net]
- !?
- 919 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 06:12:09.99 ID:MtyeuN+5.net]
- 可能
pythonに不可能は無い
- 920 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 10:56:59.10 ID:Eza8KstC.net]
- >>893 iOS なら、Pythonista で簡単にアプリを作れるぞ。
Androidでもできるだろ。 そもそもiOSだと、C#じゃなくObjective-C やSwift になるからかなり垣根は高いぞ。 因みにPythonista からはObjective-C のライブラリを使うこともできるし自由に呼び出すこともできる。 なお、scikit-learn そのものをPythonistaで使うことはできない。 numpy は使えるが、scipy がインストールできない。
- 921 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:10:13.00 ID:INaBYg0f.net]
- いやC#つってんだからUnityで作るんだろJK
あれゲーム作るの簡単だからいいよな〜
- 922 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:18:22.65 ID:mXGVm9Ao.net]
- >>896
ありがとうございます。 Androidアプリを作られればIOSには対応できなくてもよいと考えてます。 Androidでscikit-learnを使うのは難しいでしょうか?
- 923 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:20:10.33 ID:mXGVm9Ao.net]
- Unityって物理エンジンですよね?
scikit-learnのように機械学習もできるのですか?
- 924 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:31:31.62 ID:Slvebd/s.net]
- 学習機能は通信を介したサービスとして提供したら
scikit-learnはサーバー側で動いてりゃ良いんだし
- 925 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:44:44.11 ID:+8YpvTs6.net]
- >>900
そっちの方が良いと思う 機械学習の多言語移植は考えただけで血の気が引く kerasならまだしも、scikit-learnは依存地獄が酷かった。今は大分マシ担ってるとは思うけど
- 926 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:48:05.65 ID:d/4KgbH7.net]
- じゃんけんするのにサーバーと通信するのは草
でもいまどきそんなもんなのか?
- 927 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:52:33.53 ID:+8YpvTs6.net]
- さすがに半分テストアプリだと思うけど、既に超敷居が高い
- 928 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:53:42.85 ID:mXGVm9Ao.net]
- 機械学習の移植は難しいものなんですね。
サーバーにPythonを置けばいいのですね。 ありがとうございます。
- 929 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:58:21.60 ID:eO5a7zjy.net]
- 学習からC#でやり直すわけにはいかないの?
オブジェクト指向の機械学習ライブラリなんて言語によらず使い方似てるからそっちのが楽じゃない?
- 930 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:01:14.33 ID:eO5a7zjy.net]
- 「Unity 機械学習」
でググってもいろいろでてくるし
- 931 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:05:08.07 ID:mXGVm9Ao.net]
- C#で機械学習ですか!
scikit-learnがすごく簡単だったのでscikit-learnで出来たらと考えてました。 使い方が似ているのならその選択も検討してみます。 ありがとうございます。
- 932 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:12:34.74 ID:Eza8KstC.net]
- せっかくPython の勉強を始めたんだから、Python でゲーム開発までやれば良いのに、じゃんけんアプリなんて簡単でしょ。
どんなPython ゲームライブラリが適切なのかは知らないけど。
- 933 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:14:27.10 ID:SlIDoTSl.net]
- selfについて何度も聞いてるカスなんですが、まだ意味が理解できてません
このコードの場合どういった意味を持ちますか? インスタンス自身と言われてもイメージがつきません 記憶領域という説明も見たことがありますが、これはどういう意味でしょうか codepad.org/rOzHcmIX 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 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:15:53.61 ID:SlIDoTSl.net]
- 訂正です
×このコードの場合どういった意味を持ちますか? ○このコードのようにselfを使うメリットはなんですか?
- 935 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:24:28.76 ID:Eza8KstC.net]
- Android ならQpython にはKivy がバンドルされてるらしいし、kivy で良いんじゃないの?
- 936 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:29:58.42 ID:+8YpvTs6.net]
- >>909
コードが変なので修正した codepad.org/L0lJBrzg メモリ上のデータをイメージできれば簡単に理解できるんだけどね インスタンスとか言っても逆に分からんだろうな https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/C++2/09/09-02.html cpp.aquariuscode.com/class-memory-layout
- 937 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:38:34.92 ID:mXGVm9Ao.net]
- >>908
Pythonは機械学習やディープラーニングを始めたくて最近勉強し始めました。 勉強してくうちにアプリを公開したいと思うようになった次第ですw GUIはC#の方が簡単そうなので2つの言語をうまく連携できればと思ったのですが、 難しいようですね。 もちろんPythonはこれからも使いたいと思います!
- 938 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:58:16.11 ID:Cc4OYSLe.net]
- >>909
まず自分でクラス書く前にライブラリでクラス使ってみたらわかるだろ pandasのチュートリアルとか何でもいいけどインスタンス作ってメソッド使ってインスタンス変数参照したらself何なのかも見えてくる メモリ上の何とかなんか意識しなくていい
- 939 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 13:11:48.23 ID:eO5a7zjy.net]
- 「入門python3」を一冊買ってやろう。
- 940 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:05:24.13 ID:fe/BGgDT.net]
- vscodeとintellijのpython機能で試したのですが
awsのsdk boto3でインスタンス化したクライアントに対してオートコンプリートを働くようにするのってどうしたらよいでしょうか? 以下のようにして変数cを作っても、変数cをBaseClient型としか認識してくれないので、s3関連のメソッドがオートコンプリートで出てきてくれません。 c = boto3.client('s3') もちろん実行時はちゃんとs3の型になるのでコードを動かす事は出来るのですが、オートコンプリート無しはちょっときついので、なんとかして出す方法があれば教えてください。
- 941 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:30:45.43 ID:SlIDoTSl.net]
- >>914
ライブラリでクラスを書くとはなんのことですか? >>912 c++がわかりません selfはメモリ領域を確保するために必要になるもの、という認識でいいんでしょうか?おそらくインスタンスを作った時点でメモリが確保されるのかと思いますが。
- 942 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:36:03.43 ID:YxxaJZky.net]
- >>916
型アノテーションで変数の型を明示的に指定する
- 943 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:53:42.59 ID:+8YpvTs6.net]
- >>917
・インスタンスを作成 ・メモリ領域を確保 ・self=インスタンス この辺はもう全部イコールで考えても構わない 例外的にstaticやglobalでインスタンス外にメモリ領域を確保することも出来るけど 図で言うとこんな感じ https://i.imgur.com/gNRp6HQ.png
- 944 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 19:28:51.03 ID:sQCNGdE3.net]
- >>917
インスタンスを作った時点でメモリが確保は良い。でも確保にselfは関係ない 内部だと__init__より前に__new__が呼び出され、そこでメモリ確保が行われる 語弊を恐れずに言ってしまえば、selfはそのメモリがどこか位置を示すものだ メリットがどうとかじゃない、sとs2は同じ型だが別物だろう、それを区別するために必要なんだ
- 945 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 19:33:23.24 ID:1feDyboY.net]
- >>919
「のタイミング!」 ですか?
- 946 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:16:22.51 ID:SlIDoTSl.net]
- >>919
>>920 ありがとうございます あれ?これってもしかしてポインタというやつなんですか?pythonの場合そういった呼ばれ方は見たことがありませんが https://wa3.i-3-i.info/word12815.html
- 947 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:31:38.84 ID:INaBYg0f.net]
- 山椒
- 948 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:47:12.09 ID:+8YpvTs6.net]
- >>922
似たようなもんで「参照」 ポインタと参照の違い https://qiita.com/agate-pris/items/05948b7d33f3e88b8967 cocodrips.hateblo.jp/entry/2015/12/08/221722 メモリ上にインスタンスが展開されてるイメージができれば大体ok
- 949 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 22:04:48.14 ID:/h3gEsxd.net]
- C言語使わない人にその教え方はどうなのよ。悪いことは言わないから「入門python3」を買って一通りやろう。
- 950 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 22:11:31.40 ID:431M+yCA.net]
- 入門python3ってあんまりレビューが良くないね
- 951 名前:847 [2019/03/16(土) 23:16:52.98 ID: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 にも応用できるから
- 952 名前:デフォルトの名無しさん [2019/03/16(土) 23:27:14.53 ID:DylECkfT.net]
- >>927
> self.name よりも、@name の方がわかりやすいから! アピールポイントそれだけ? @がメンバ変数を表すなんて知らなきゃ分からんし、直感でも何となく察せるself.〜の方が分かりやすいと思うが
- 953 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 23:28:24.96 ID:1G1aklbm.net]
- 自分もPython初心者だけど
ttps://www.python-izm.com ここのサイトめちゃくちゃわかり易かったので載せときたす。
- 954 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 23:35:31.32 ID:8PxPizsB.net]
- >>927
さすがクソ記号言語perlの末裔w 一生記号暗記してろ。 そして死ね。
- 955 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 00:17:39.16 ID:oRKycfKe.net]
- >>927
なんでJavaないの? 理解できなかったの?
- 956 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 01:42:26.25 ID:ttbbgHOa.net]
- chromeの拡張機能を自動操作することは可能ですか?
- 957 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 02:01:28.71 ID:QLspzkYx.net]
- >>937 ちらっとのぞいてみたが、目次が良くないね。
最初から順を追って進めて行く人にとっては良いかもしれないけど。
- 958 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 02:05:09.07 ID:nMZPqZIX.net]
- 937に期待
- 959 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 02:05:36.23 ID:pyRBRMBz.net]
- >>926
どこのレビュー?Amazon見る限りは良さそうだけど…
- 960 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 05:27:50.39 ID:nAjwMdDd.net]
- >>924
ありがとう
- 961 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:33:20.83 ID:nAjwMdDd.net]
- https://wa3.i-3-i.info/word16070.html
こういう説明がわかりやすいのに、、、
- 962 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:39:55.25 ID:nAjwMdDd.net]
- 変数がメモリ上にあって、その変数の場所を渡すのが参照わたし=self
ということでいいんですか?
|

|