[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/24 12:06 / Filesize : 298 KB / Number-of Response : 1030
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました



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

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
ということでいいんですか?

963 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:24:23.53 ID:HhaziKqA.net]
参照渡しがどうこうはとりあえず忘れろ
今までの流れには全く関係ないから

964 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:25:15.86 ID:HhaziKqA.net]
今までの流れってのはselfの話な

965 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:37:05.58 ID:Udd8jK7+.net]
>>935
書き方が悪かったわ
完全な初心者にとっては難しくてレビューが良くないね

966 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:41:05.15 ID:nAjwMdDd.net]
>>939
えっ?関係ないのですか、、、

967 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:18:35.50 ID:oeP02mQD.net]
Pythonではすべてが値渡しだ
そしてすべての値が所謂参照型だってだけ

968 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:41:11.52 ID:R43k4iG5.net]
内部的に参照渡しみたいなもんなんだからメモリの概念教えないと永久に理解できなく内科?

969 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:57:02.77 ID:X1cUtWYO.net]
参照渡しってどこが

970 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:00:59.08 ID:X1cUtWYO.net]
参照渡しについて
C#のrefみたいなのを参照渡しと呼ぶ勢と
C++のhoge&みたいなのを参照渡しと呼ぶ勢がいるので
ややこしい



971 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:08:17.15 ID:iuUxAYpH.net]
一子相伝究極奥義「参照渡し」

972 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:11:50.92 ID:Udd8jK7+.net]
値渡しと参照渡しと参照の値渡しがあるんだっけ

973 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:12:20.76 ID:nAjwMdDd.net]
>>943
値渡しということはコピーということですかね

974 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:14:55.90 ID:7j/Zhhp5.net]
大地参照も変換できない糞スマホの糞IME

975 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:15:53.60 ID:vfP8HMqf.net]
大地讃頌

976 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:21:40.62 ID:XvGPMByn.net]
>>946
C#のrefとC++のhoge&はどちらも変数のエイリアスを渡すから一緒
紛らわしいのは「参照の値渡し」

977 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 15:27:46.05 ID:9wVKFPUf.net]
>>937-938
いやさ、記憶領域の話をし出すから皆メモリの話をした訳だけど
ポインタとか言い出すと、Python上にはポインタは無いけど
CPython等の実装は変数が全てポインタで実体に対する参照なの

参照渡しというと普通は変数に対する参照を言うので関係ないし
変数が入れ物とはC言語などのスタック変数を前提としてしまってる

そもそも実装以前に、OOPどころか構造体的な概念も分かってないのでは?

978 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 18:00:19.80 ID:oeP02mQD.net]
>>938
こういう簡単なクラスで考えてみる

class MyClass:
  def __init__(self, name):
    self.name = name

  def getname(self):
    return self.name

コンストラクタで名前を受け取って、自身のnameプロパティにセットする
getnameメソッドでは自身の名前を返す簡単なクラス

このクラスの使い方は以下

a = MyClass("John")
a.getname() // 出力 'John'

ただしこういう風にも書ける

a = MyClass("John")
MyClass.getname(a) // 出力 'John'

Pythonのインスタンスメソッドは単なる関数もしくはスタティックメソッドみたいなものだということがわかる
a.getname() は暗黙的に MyClass.getname(a) に置き換えられてると考えてもいい

979 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 18:01:31.22 ID:oeP02mQD.net]
>>938
さらにselfというものがわかりやすいようにこのクラスを普通の関数と辞書型で再現してみる

def MyClass(name):
  self = {}
  __init__(self, name)
  return self

def __init__(self, name):
  self["name"] = name

def getname(self):
  return self["name"]


a = MyClass("John")
getname(a) // 出力 'John'

これでだいたい再現できる
何が言いたいかというとMyClass()という関数が空のインスタンス(ここでは辞書だが)を作成して__init__に引数として渡している
たぶんPythonのクラスでも暗黙的にMyClass()という関数が生成されて間接的に__init__を呼び出している
つまりself(=MyClassのインスタンス)というのは暗黙的に作られたMyClass()関数内で作られているオブジェクトだと考えればいい
Pythonほとんどやったことないから想像で適当に言ってるだけだけどな

980 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 19:53:26.49 ID:UUXyH29G.net]
>>954
self.name = name
部分はself変数にnameプロパティがついている状態なんですか?
nameのほうが変数名かとおもっていましたが
self.nameとすることでnameプロパティを定義している という感じですかね
なんのためにあるのかわからないですが



981 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 21:13:22.59 ID:pWnkPEfA.net]
>>955
デタラメな回答するの辞めーや

982 名前:デフォルトの名無しさん [2019/03/17(日) 21:52:19.70 ID:oeP02mQD.net]
>>957
詳しいなら教えてくれ

983 名前:847 mailto:sage [2019/03/17(日) 22:22:14.14 ID:QeX4wN+m.net]
self.name = name

Ruby では、@ がインスタンス変数です。
@name = name

インスタンスや、インスタンス変数は、オブジェクト指向の基礎。
クラスはひな形で、実体化するには、個々のインスタンスを作らないといけない

これがわからないのなら、Rubyをみっちり勉強した方がよい。
Python から始めるのは無理

オブジェクト指向・関数型は、Rubyで学んだ方がよい。
Python, JavaScript, Kotlin にも応用できる

984 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:28:34.62 ID:Ea7K77ki.net]
Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
def add(a, b)
a + b
end
def opTwo(a, b, func)
func(a, b)
end
p opTwo(1, 2, add)
=> Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError)
from t.rb:9
プギャーm9(^Д^ )

ちなみにPython:
def add(a, b):
return a + b

def opTwo(a, b, func):
return func(a, b)

print(opTwo(1, 2, add))
=> 3

ちなみにJavascript:
function add(a, b) {
return a + b;
}
function opTwo(a, b, func) {
return func(a, b);
}
console.log(opTwo(1, 2, add))
=> 3

985 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:29:45.96 ID:Ea7K77ki.net]
def、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、
==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww

986 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:31:54.89 ID:Ea7K77ki.net]
Ruby 初心者スレッド Part 64
mevius.5ch.net/test/read.cgi/tech/1535797516/658
658 デフォルトの名無しさん sage 2018/10/15(月) 10:09:06.69 ID:r7U1tD/N
擬似コードがそのまま動くのはPythonじゃね
関数型言語なら演算子がそのまま第一級関数であることとカリー化を使って data |> select ((>) 0) みたいに書けたりするね
ガチ関数型でなくてもまともなラムダがある言語なら select(x => x > 0) と遥かに見通し良く書ける
Rubyの &:: は極めて驚きが大きく醜悪な機能の一つだね

987 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:33:19.32 ID:Ea7K77ki.net]
クロージャって何がいいの? [転載禁止]©2ch.net
mevius.5ch.net/test/read.cgi/tech/1415419907/261
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が

> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。

と語っているね


www.atmarkit.co.jp/news/200907/24/ruby.html

988 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:50:20.65 ID:vwxCn2J+.net]
必死すぎるw

989 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:58:46.72 ID:Ea7K77ki.net]
Rubyを長く使い続けることを僕がお薦めしない理由を説明します - YouTube
https://www.youtube.com/watch?v=2wfQ3iG08UI

990 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:59:12.36 ID:Ea7K77ki.net]
「Railsは終わった」と言われる理由
https://qiita.com/klriutsa/items/86ac5e94ec99c0d95b61



991 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:07:59.19 ID:Ea7K77ki.net]
GitHub、2018年の人気プログラミング言語を概観できる「The State of the Octoverse」を発表
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/

日本人が作ったプログラミング言語がランクイン!
誇らしい!!

992 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:13:16.15 ID:Ea7K77ki.net]
GitHubのRails離れと、迫りくるMicrosoft
https://yakst.com/ja/posts/5290






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<298KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef