★当スレに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/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
くだすれPython(超初心者用) その41【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/02/04(月) 21:22:10.08ID:9MrdxUVg799デフォルトの名無しさん
2019/03/12(火) 13:20:45.17ID:6Uu2j9Xc >>782
馬鹿には無理
馬鹿には無理
800デフォルトの名無しさん
2019/03/12(火) 13:36:24.76ID:R/A89vkp >>797
ありがとうございます
ありがとうございます
801デフォルトの名無しさん
2019/03/12(火) 13:58:38.98ID:c3A0Gx7w そもそも何でメソッドの引数にオブジェクト自身を渡すんやろうか
obj.method()みたいに呼び出すなら、どのオブジェクトをメソッドに渡すかわ明らかなんだから、省略できそうなのに
obj.method()みたいに呼び出すなら、どのオブジェクトをメソッドに渡すかわ明らかなんだから、省略できそうなのに
802デフォルトの名無しさん
2019/03/12(火) 14:09:51.25ID:R/A89vkp >>801
こういう渡し方をする言語、python以外にもあるんでしょうか
こういう渡し方をする言語、python以外にもあるんでしょうか
803デフォルトの名無しさん
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)の等価性を明示するみたいな論調も記憶にあるが公式なソースは忘れた
それはPythonのオブジェクト指向の実装方法とか基本理念によるもの、属性解決については
https://docs.python.org/ja/3/howto/descriptor.html#definition-and-introduction
self.meth()とcls.meth(self)の等価性を明示するみたいな論調も記憶にあるが公式なソースは忘れた
804デフォルトの名無しさん
2019/03/12(火) 14:39:35.59ID:5JRn7Uik >>802
perl
perl
805803
2019/03/12(火) 14:48:12.21ID:rdaDEiid selfに対する直接の説明としてはちょっとアンカーが適切ではないか
https://docs.python.org/ja/3.5/howto/descriptor.html#functions-and-methods
「関数に基づく環境の上に構築」って所がミソやね、後付けと言われる所以
https://docs.python.org/ja/3.5/howto/descriptor.html#functions-and-methods
「関数に基づく環境の上に構築」って所がミソやね、後付けと言われる所以
806デフォルトの名無しさん
2019/03/12(火) 16:34:54.17ID:8KtfShI4 >>802
tcl
tcl
807デフォルトの名無しさん
2019/03/12(火) 16:40:24.68ID:Le2Xhtue >>795
よくわからないけどありがとうひき肉おじさん
よくわからないけどありがとうひき肉おじさん
808デフォルトの名無しさん
2019/03/12(火) 17:17:23.48ID:8KtfShI4 わからないならレスしないでくださいうざいだけです
809デフォルトの名無しさん
2019/03/12(火) 17:19:11.50ID:Le2Xhtue インスタンス作成っていうのはメモリ上に領域を確保する作業ってことでいいんでしょうか。
810デフォルトの名無しさん
2019/03/12(火) 17:21:39.56ID:zkYMqbGV なにそれ
他のコード作業だとメモリを使用しないとでもw
他のコード作業だとメモリを使用しないとでもw
811デフォルトの名無しさん
2019/03/12(火) 17:23:18.47ID:zkYMqbGV クラス定義内に大量の関数定義を入れると、そのクラスがインスタンス化されたときに、インスタンスに自我意識が生まれます
812デフォルトの名無しさん
2019/03/12(火) 18:13:57.38ID:rf03pH6k 俺も3食インスタンスラーメンです
813デフォルトの名無しさん
2019/03/12(火) 19:11:13.53ID:qLQHaQxA selfはあってもなくても、どっちでも
よかったかもしらんが、
クラス外の普通の関数でも、いきなり
クラスのフレンド関数のようにしやすいといった、
モンキーパッチ的な利点もあるし、
一長一短。
よかったかもしらんが、
クラス外の普通の関数でも、いきなり
クラスのフレンド関数のようにしやすいといった、
モンキーパッチ的な利点もあるし、
一長一短。
814デフォルトの名無しさん
2019/03/13(水) 05:29:22.97ID:Z4mQGBB0 pythonのselfの超簡単なサンプルを教えてください
調べてるんですが、わかりにくくて、、、
調べてるんですが、わかりにくくて、、、
815デフォルトの名無しさん
2019/03/13(水) 06:11:09.78ID:nAhixTo8 サンプルって…メソッドならインスタンスを受け取るために必須なだけだ
倣うほどの規範は無いと思うけど、オブジェクト指向が理解できてないの?
倣うほどの規範は無いと思うけど、オブジェクト指向が理解できてないの?
816デフォルトの名無しさん
2019/03/13(水) 07:18:13.39ID:zpkiSS8W >>815
オブジェクト指向の理解というよりPythonの仕様の気が・・
横なんですけど、例えばあるクラスを継承したクラスがいくつかあって、それぞれで同じメソッドをオーバーライドしている時、Pythonは渡されたインスタンスを見てどのメソッドを呼び出すか決めているんですか?
つまりインスタンスとメソッドは別々に管理されていて、呼び出す時にインスタンスとメソッドは結び付けられるとか。
オブジェクト指向の理解というよりPythonの仕様の気が・・
横なんですけど、例えばあるクラスを継承したクラスがいくつかあって、それぞれで同じメソッドをオーバーライドしている時、Pythonは渡されたインスタンスを見てどのメソッドを呼び出すか決めているんですか?
つまりインスタンスとメソッドは別々に管理されていて、呼び出す時にインスタンスとメソッドは結び付けられるとか。
817デフォルトの名無しさん
2019/03/13(水) 07:28:44.40ID:Z4mQGBB0818デフォルトの名無しさん
2019/03/13(水) 07:44:07.11ID:zpkiSS8W819デフォルトの名無しさん
2019/03/13(水) 10:42:08.19ID:Nk0VyZbv 配列hogeを作成し、
print(hoge)を実行した時、[1. 2. 3. 4. 5.]の様に
数字にピリオドがついた時は浮動小数点型の配列なのでしょうか?
浮動小数点型の場合、整数型の配列にする方法はありますでしょうか?
print(hoge)を実行した時、[1. 2. 3. 4. 5.]の様に
数字にピリオドがついた時は浮動小数点型の配列なのでしょうか?
浮動小数点型の場合、整数型の配列にする方法はありますでしょうか?
820デフォルトの名無しさん
2019/03/13(水) 10:51:02.04ID:x5gb1xdG >>819
list(map(int,hoge))
list(map(int,hoge))
821デフォルトの名無しさん
2019/03/13(水) 11:00:58.72ID:Nk0VyZbv822デフォルトの名無しさん
2019/03/13(水) 11:08:04.74ID:Z4mQGBB0 class Cat(object):
def __init__(self, name, weight):
self.name = name
self.weight = weight
このコードのselfはどういう意味なんでしょうか?
猫というオブジェクトの属性を表現しているクラスのようです
def __init__(self, name, weight):
self.name = name
self.weight = weight
このコードのselfはどういう意味なんでしょうか?
猫というオブジェクトの属性を表現しているクラスのようです
823デフォルトの名無しさん
2019/03/13(水) 11:19:10.70ID:Y4yR4bDO824デフォルトの名無しさん
2019/03/13(水) 11:20:56.58ID:Y4yR4bDO x/yも見掛けるな
同種同士の同等な二項演算の定義に主体が入り込むのは気持ち悪いと思うよやっぱ
同種同士の同等な二項演算の定義に主体が入り込むのは気持ち悪いと思うよやっぱ
825デフォルトの名無しさん
2019/03/13(水) 11:34:37.37ID:imKqJmF7 >>822
Cat(‘neko’, 5) などと書くと__init__が呼び出されてselfには作成されたCatのインスタンスが渡される
つまり
c = Cat(‘neko’, 5)
とした時cとselfは同じものを指す
Cat(‘neko’, 5) などと書くと__init__が呼び出されてselfには作成されたCatのインスタンスが渡される
つまり
c = Cat(‘neko’, 5)
とした時cとselfは同じものを指す
826デフォルトの名無しさん
2019/03/13(水) 12:31:52.80ID:Z4mQGBB0 selfの意味がいまいち理解できていないのですが、引数の設定されたクラスや関数自身を表すということですよね
で、self自体を出力してみました
class classname:
def defname(self):
print(self)
s =classname()
s.defname()
<__main__.classname object at 0x03EE2F30>
selfを設定しているのは関数なのですが、これでは関数自身ではなく、クラス自身ではないですか?
また、これはどういったときに役立つのですか?
環境はidleです
>>825
ありがとうございます
読み解いてみます
で、self自体を出力してみました
class classname:
def defname(self):
print(self)
s =classname()
s.defname()
<__main__.classname object at 0x03EE2F30>
selfを設定しているのは関数なのですが、これでは関数自身ではなく、クラス自身ではないですか?
また、これはどういったときに役立つのですか?
環境はidleです
>>825
ありがとうございます
読み解いてみます
827デフォルトの名無しさん
2019/03/13(水) 12:44:16.23ID:Ux8DzXrZ >>826
>引数の設定されたクラスや関数自身を表すということですよね
うん
5ちゃんでは
インデント(連続してる半角スペース)が消えちまうので
めんどうでも全角スペース使って書きなおす(半角スペースを全角スペースに置換でおk)か
1に書いてあるような、ソースコード貼る専用のうpろだにうp
>引数の設定されたクラスや関数自身を表すということですよね
うん
5ちゃんでは
インデント(連続してる半角スペース)が消えちまうので
めんどうでも全角スペース使って書きなおす(半角スペースを全角スペースに置換でおk)か
1に書いてあるような、ソースコード貼る専用のうpろだにうp
828デフォルトの名無しさん
2019/03/13(水) 13:38:08.75ID:imKqJmF7 >>826
メソッドの中から別のメソッドを呼びたい時にselfが無いと詰む
メソッドの中から別のメソッドを呼びたい時にselfが無いと詰む
829デフォルトの名無しさん
2019/03/13(水) 15:00:34.67ID:Ux8DzXrZ >>826
2系でやったら違う結果になるぞ
2系でやったら違う結果になるぞ
830デフォルトの名無しさん
2019/03/13(水) 15:57:20.28ID:nAhixTo8 >>826
はい、いいえ。通常defで定義した関数自身を第1引数が表す事はありませんし
ついでにクラスへ定義した関数は、メンバー関数あるいはメソッドと呼びます
またクラス(型)も渡されていません、それはインスタンス(実体)です
オブジェクトとも呼ばれますけど意味が文脈に左右されるので置いといて
クラスメソッド(@classmethod)と修飾したときは、クラスが渡されます
文字列でいうならクラスはstr、'ABC'など具体的な物がインスタンスに相当し
その長さなどがインスタンスの属性と言えます(Pythonだと関数で取得するが
selfは>>795でも回答されるように他言語の(暗黙的に参照可能な)thisと同等で
その宣言の必要性は>>805に対する>>816や>>818の理解…は齟齬が生じる所もあるが
概念的にはメソッドだけども実装的には関数なので、()と呼び出された時ではなく
実体から関数が.で属性参照された時に、結び付けられたメソッドが生成されます
一連のレスからすると、引数が表すものに関数自身(callee)が出てくる辺り
メソッド以前に関数の定義・呼び出し自体の理解も怪しいのではなかろうか?
関数の操作対象として構造物というか実体が第1引数に渡されているのだが…
はい、いいえ。通常defで定義した関数自身を第1引数が表す事はありませんし
ついでにクラスへ定義した関数は、メンバー関数あるいはメソッドと呼びます
またクラス(型)も渡されていません、それはインスタンス(実体)です
オブジェクトとも呼ばれますけど意味が文脈に左右されるので置いといて
クラスメソッド(@classmethod)と修飾したときは、クラスが渡されます
文字列でいうならクラスはstr、'ABC'など具体的な物がインスタンスに相当し
その長さなどがインスタンスの属性と言えます(Pythonだと関数で取得するが
selfは>>795でも回答されるように他言語の(暗黙的に参照可能な)thisと同等で
その宣言の必要性は>>805に対する>>816や>>818の理解…は齟齬が生じる所もあるが
概念的にはメソッドだけども実装的には関数なので、()と呼び出された時ではなく
実体から関数が.で属性参照された時に、結び付けられたメソッドが生成されます
一連のレスからすると、引数が表すものに関数自身(callee)が出てくる辺り
メソッド以前に関数の定義・呼び出し自体の理解も怪しいのではなかろうか?
関数の操作対象として構造物というか実体が第1引数に渡されているのだが…
831デフォルトの名無しさん
2019/03/13(水) 16:27:27.93ID:M+m6pFpm はい(いいえ)
832デフォルトの名無しさん
2019/03/13(水) 17:46:31.02ID:h9UFHds/ そやで、ちゃうで
833デフォルトの名無しさん
2019/03/13(水) 17:48:54.93ID:MhYZY5Aj はいいいえ
834デフォルトの名無しさん
2019/03/13(水) 18:46:52.20ID:gkV5NrkZ ちゃうちゃうちゃうんちゃう
835デフォルトの名無しさん
2019/03/13(水) 19:03:05.32ID:jL6M634A def yes(arg= None):
____print()
____print()
836デフォルトの名無しさん
2019/03/13(水) 19:58:39.06ID:26FDLpbf hoge = "ほげほげ!"
if hoge == "ほげほげ":
print("ほげほげ!)
else:
pinrt("げほげほ!")
if hoge == "ほげほげ":
print("ほげほげ!)
else:
pinrt("げほげほ!")
837デフォルトの名無しさん
2019/03/13(水) 20:00:19.07ID:Ux8DzXrZ >>836
”がたりてない
”がたりてない
838デフォルトの名無しさん
2019/03/13(水) 20:21:08.59ID:1Wup6Az1 Pythonはswitch文が無いのが不満だったけど辞書使えば同じ様な事が出来ると最近気づいた
一番はswitchが必要になるロジックを組まない事だろうけど
一番はswitchが必要になるロジックを組まない事だろうけど
839デフォルトの名無しさん
2019/03/13(水) 20:32:12.62ID:Z4mQGBB0 ↑selfについて回答ありがとうございました
840デフォルトの名無しさん
2019/03/13(水) 20:34:50.72ID:Z4mQGBB0 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関数自身とは?
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関数自身とは?
841デフォルトの名無しさん
2019/03/13(水) 20:34:55.83ID:Z4mQGBB0 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関数自身とは?
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関数自身とは?
842デフォルトの名無しさん
2019/03/13(水) 20:41:11.30ID:Z4mQGBB0 インスタンス変数を使うときにselfをつけることですが、そういうおまじないということですか?
843デフォルトの名無しさん
2019/03/13(水) 20:47:03.94ID:Ux8DzXrZ >>827を読んでも理解してないということはよくわかった
844デフォルトの名無しさん
2019/03/13(水) 21:14:16.67ID:nAhixTo8 >>840-841
まず引数を設定しようがしまいがインスタンス化したら初期化のために__init__は呼ばれる
selfはselfを書いた関数自身ではなく、メソッドとして属するクラスのインスタンスを表す
selfから属性参照しなければstr1やstr2はローカル変数になって抜けたら破棄されてしまう
結果としてtestに代入されるインスタンスを参照するために必要だから書く
まず引数を設定しようがしまいがインスタンス化したら初期化のために__init__は呼ばれる
selfはselfを書いた関数自身ではなく、メソッドとして属するクラスのインスタンスを表す
selfから属性参照しなければstr1やstr2はローカル変数になって抜けたら破棄されてしまう
結果としてtestに代入されるインスタンスを参照するために必要だから書く
845デフォルトの名無しさん
2019/03/13(水) 21:16:12.72ID:ZMFJ1a5n >>841
俺も初心者だけど、Pythonにはクラスオブジェクトってのがあつて、クラス定義が実行されるとそのクラスオブジェクトってのが作られるらしいぞ。クラス定義が実行させるって何ぞ?と思ったけどそうらしい。
でインスタンスはそのクラスオブジェクトから作られるらしいぞ。
つまりそのinitはコンストラクタというよりクラスからクラスオブジェクトを作るためのinitだったりするかも。
self渡す必要があるってことは、そのinitは他の言語じゃプログラマが意識しない部分の可能性。クラスのインスタンス化の一層下にあるのかな?
俺も初心者だけど、Pythonにはクラスオブジェクトってのがあつて、クラス定義が実行されるとそのクラスオブジェクトってのが作られるらしいぞ。クラス定義が実行させるって何ぞ?と思ったけどそうらしい。
でインスタンスはそのクラスオブジェクトから作られるらしいぞ。
つまりそのinitはコンストラクタというよりクラスからクラスオブジェクトを作るためのinitだったりするかも。
self渡す必要があるってことは、そのinitは他の言語じゃプログラマが意識しない部分の可能性。クラスのインスタンス化の一層下にあるのかな?
846デフォルトの名無しさん
2019/03/13(水) 21:22:48.95ID:M+m6pFpm シンタックスは
def self.__init__(strA, strB):
とかではダメだったの?
書いてもないのに第一引数にself入ってくるのと大差なくない?
def self.__init__(strA, strB):
とかではダメだったの?
書いてもないのに第一引数にself入ってくるのと大差なくない?
847デフォルトの名無しさん
2019/03/13(水) 21:27:46.46ID:ZImJqTUY >>822
self が付いているのは、インスタンス変数じゃないの?
Ruby では、@ がインスタンス変数
class Cat
def initialize( name, weight )
@name = name
@weight = weight
end
end
p Cat.new( "bob", 5 )
# <Cat: @name="bob", @weight=5>
self が付いているのは、インスタンス変数じゃないの?
Ruby では、@ がインスタンス変数
class Cat
def initialize( name, weight )
@name = name
@weight = weight
end
end
p Cat.new( "bob", 5 )
# <Cat: @name="bob", @weight=5>
848デフォルトの名無しさん
2019/03/13(水) 21:43:36.51ID:nAhixTo8 >>846
Pythonに複合文としてのメソッド定義はなく、クラスに書いた関数がメソッドとして扱われる
そのメカニズムはHowToでも記される、参照した属性がクラススコープで定義された関数なら
インスタンスと関数が参照されたバウンドメソッドオブジェクトを返し、__call__が呼ばれる
Pythonに複合文としてのメソッド定義はなく、クラスに書いた関数がメソッドとして扱われる
そのメカニズムはHowToでも記される、参照した属性がクラススコープで定義された関数なら
インスタンスと関数が参照されたバウンドメソッドオブジェクトを返し、__call__が呼ばれる
849847
2019/03/13(水) 21:53:09.68ID:ZImJqTUY 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 を学ぶ方がよい
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 を学ぶ方がよい
850デフォルトの名無しさん
2019/03/13(水) 21:55:25.72ID:bUFEpZHr851デフォルトの名無しさん
2019/03/14(木) 03:27:13.64ID:4WTRjlYm 相手にするからつけあがるんだよ
852デフォルトの名無しさん
2019/03/14(木) 03:37:18.44ID:nL4uJ2zh 終わりのないのが『終わり』
それが『RWBY』
それが『RWBY』
853デフォルトの名無しさん
2019/03/14(木) 08:25:07.71ID:/JPtJCUD a = 'hoge'
type(a)
これを実行すると<class 'str'>が表示される
これは変数aが指してるオブジェクトの型がstr型という意味でいいんだよね
一方で、文字列はシーケンス型でもあるからインデックスでアクセスしたり、スライスしたり出来る
この文字列がシーケンス型というのはpython上でどうやって確認するんや
type(a)
これを実行すると<class 'str'>が表示される
これは変数aが指してるオブジェクトの型がstr型という意味でいいんだよね
一方で、文字列はシーケンス型でもあるからインデックスでアクセスしたり、スライスしたり出来る
この文字列がシーケンス型というのはpython上でどうやって確認するんや
854デフォルトの名無しさん
2019/03/14(木) 08:34:53.42ID:lGFaI2Uv >>853
シーケンス型の実体は存在しない
失敗しないことを天に祈りつつ勇敢にforに投入する、がPythonの思想的には正しい
厳密にやりたいなら型アノテーションでSequenceあるけど、型アノテーションなんか誰も使ってない
シーケンス型の実体は存在しない
失敗しないことを天に祈りつつ勇敢にforに投入する、がPythonの思想的には正しい
厳密にやりたいなら型アノテーションでSequenceあるけど、型アノテーションなんか誰も使ってない
855デフォルトの名無しさん
2019/03/14(木) 10:12:27.31ID:QThoqyRe >>853
hasattr(a, ‘__iter__’)
Pythonではシーケンス型の事をiterableなオブジェクトという
forにiterableを渡すと__iter__()が呼ばれるのでこれの有無を確認すれば分かる
hasattr(a, ‘__iter__’)
Pythonではシーケンス型の事をiterableなオブジェクトという
forにiterableを渡すと__iter__()が呼ばれるのでこれの有無を確認すれば分かる
856デフォルトの名無しさん
2019/03/14(木) 10:14:27.51ID:QThoqyRe857デフォルトの名無しさん
2019/03/14(木) 11:06:23.42ID:/JPtJCUD レスありがとう
俺はstr型はシーケンス型を継承してるから、シーケンス型のようにも振る舞うと勝手に思ってたけど違うのね
str型はiterableな属性を持ってるから、for文に渡して繰り返しの処理が出来るというのはわかった
それなら、str型がsequenceableな属性を持ってるからスライスやインデックスのアクセスが出来るというのなら理解できるんだけど、シーケンス型で属性じゃないのよね
なんか混乱してきたわ(´・ω・`)
俺はstr型はシーケンス型を継承してるから、シーケンス型のようにも振る舞うと勝手に思ってたけど違うのね
str型はiterableな属性を持ってるから、for文に渡して繰り返しの処理が出来るというのはわかった
それなら、str型がsequenceableな属性を持ってるからスライスやインデックスのアクセスが出来るというのなら理解できるんだけど、シーケンス型で属性じゃないのよね
なんか混乱してきたわ(´・ω・`)
858デフォルトの名無しさん
2019/03/14(木) 11:16:27.87ID:r+Z4K3kn >>857
IterableもSequenceと同じく、クラスが満たすべき性質がドキュメント上や型アノテーションで定義されているだけの実体のない型だ
Pythonではそういう実体のない(ドキュメントや型アノテーションにしか登場しない)仮想的な型のことを一般にプロトコルと呼ぶ
Javaのinterfaceに近い概念だが、interfaceとは違ってオブジェクトに付随する型としての実体を持たないという点が異なる
IterableもSequenceと同じく、クラスが満たすべき性質がドキュメント上や型アノテーションで定義されているだけの実体のない型だ
Pythonではそういう実体のない(ドキュメントや型アノテーションにしか登場しない)仮想的な型のことを一般にプロトコルと呼ぶ
Javaのinterfaceに近い概念だが、interfaceとは違ってオブジェクトに付随する型としての実体を持たないという点が異なる
859デフォルトの名無しさん
2019/03/14(木) 11:26:52.83ID:RE7f17De >>857
pythonの場合、forに渡せるとかの機能は単に__xxx__という名前の特殊メソッドが実装されているかどうかで決まる
pythonの場合、forに渡せるとかの機能は単に__xxx__という名前の特殊メソッドが実装されているかどうかで決まる
860デフォルトの名無しさん
2019/03/14(木) 11:41:55.90ID:jNBQt8MR861デフォルトの名無しさん
2019/03/14(木) 12:41:19.77ID:r+Z4K3kn >>860
だからそう言ってるつもりだが
だからそう言ってるつもりだが
862デフォルトの名無しさん
2019/03/14(木) 12:47:55.74ID:YiVNNcx0 じゃあjavaよりgoのが近いんじゃ?
863デフォルトの名無しさん
2019/03/14(木) 13:23:53.72ID:jNBQt8MR864847
2019/03/14(木) 13:28:05.85ID:tsxAqnNH 参考までに、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 -> 親
自クラスに、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 -> 親
865デフォルトの名無しさん
2019/03/14(木) 13:31:58.94ID:r+Z4K3kn >>862
goのは型が明示的にinterfaceを実装していなくても必要なメソッドがあれば受け入れるstructual subtypingという考え方
Pythonは duck typing なので本来はそれに近いのだが、型ヒントがstructual subtypingではなく明示的にクラスがインターフェイスを継承する必要がある
よってpythonにおいては型ヒントを考慮すればgoよりJavaに近い
goのは型が明示的にinterfaceを実装していなくても必要なメソッドがあれば受け入れるstructual subtypingという考え方
Pythonは duck typing なので本来はそれに近いのだが、型ヒントがstructual subtypingではなく明示的にクラスがインターフェイスを継承する必要がある
よってpythonにおいては型ヒントを考慮すればgoよりJavaに近い
866デフォルトの名無しさん
2019/03/14(木) 13:52:11.73ID:q8OuUl64 rubyをdisる訳じゃないけど
初心者でpython学習し始めたところなら
rubyと比べない方が良いよ
覚えることが増えるだけでメリット無いから
初心者でpython学習し始めたところなら
rubyと比べない方が良いよ
覚えることが増えるだけでメリット無いから
867デフォルトの名無しさん
2019/03/14(木) 13:56:28.26ID:1qhaQ5mP これから試験受けるんだが落ちそう
868デフォルトの名無しさん
2019/03/14(木) 15:34:12.56ID:1qhaQ5mP うかったんご
869デフォルトの名無しさん
2019/03/14(木) 16:11:42.58ID:NTHRrjbg おめでと
870デフォルトの名無しさん
2019/03/14(木) 16:56:04.19ID:lcXwIoo8 型アノテーションは、関数の出入り口と、
なんの型が分かりにくいローカル変数には
つける。
付けることで補完が強化される場合と、
しばしば補完を逆に妨げる場合があるので、
うまく折り合いを付けて付記する感じやな。
なんの型が分かりにくいローカル変数には
つける。
付けることで補完が強化される場合と、
しばしば補完を逆に妨げる場合があるので、
うまく折り合いを付けて付記する感じやな。
871デフォルトの名無しさん
2019/03/14(木) 18:13:57.50ID:1qhaQ5mP あざます
872デフォルトの名無しさん
2019/03/14(木) 18:55:16.95ID:cYjqrp0Z >>844
ありがとうございました
ありがとうございました
873デフォルトの名無しさん
2019/03/14(木) 19:44:05.42ID:prpM2HGX 最適化には何の関係もないのよね型指定
874デフォルトの名無しさん
2019/03/14(木) 19:58:50.87ID:r+Z4K3kn >>873
むしろソースコードのパースの負荷が増えて僅かに遅くなるだろうな
むしろソースコードのパースの負荷が増えて僅かに遅くなるだろうな
875デフォルトの名無しさん
2019/03/14(木) 21:29:10.91ID:DYXE/n/d Ruby ←まず名前がダサい
Python ←カッコイイ
Python ←カッコイイ
876デフォルトの名無しさん
2019/03/14(木) 21:37:41.09ID:Cgb2oqJn pythonだけ見るとカッコイイけど元はモンティ・パイソンなんだよな
877デフォルトの名無しさん
2019/03/14(木) 21:48:50.71ID:nL4uJ2zh878デフォルトの名無しさん
2019/03/14(木) 21:50:35.71ID:nL4uJ2zh879デフォルトの名無しさん
2019/03/15(金) 08:57:12.14ID:Oo+XcCcU pythonのコーディングに少しづつ慣れてきたせいで,のあとに半角スペースを挿入してしまうクセが付いてしまいました
簡単なテストのためダミーでcsv作る際に,後ろにに半角スペース入れるせいでcsvDictReaderで読んでkey指定したときにkeyErrorが出てしまい数十分ですが悩んでしまいました
今後はskipinitialspaceをtrueにして使います
ありがとうございました
簡単なテストのためダミーでcsv作る際に,後ろにに半角スペース入れるせいでcsvDictReaderで読んでkey指定したときにkeyErrorが出てしまい数十分ですが悩んでしまいました
今後はskipinitialspaceをtrueにして使います
ありがとうございました
880デフォルトの名無しさん
2019/03/15(金) 09:55:37.05ID:LNWMUSed pythonに限らずほぼ全てのプログラミング言語でそういう癖が付くかと思うしそもそも欧米圏の言語でも全てそうだがお前何か言いがかりでも付けたいの?
881デフォルトの名無しさん
2019/03/15(金) 12:49:50.87ID:zt0rtKct python はビジュアル系スタジオみたいな統合環境は無いの?
882デフォルトの名無しさん
2019/03/15(金) 12:51:57.85ID:EeWTkT4V ビジュアル系スタジオちょっと好き
883デフォルトの名無しさん
2019/03/15(金) 13:13:04.71ID:88mLDigX >>881 あんたも好きね。 チャーミングなおっぱいがあるよ。 PyCharm
884デフォルトの名無しさん
2019/03/15(金) 13:25:05.27ID:1iRTQcZ+ pycharm ceがタダで使えるのは助かるなぁ
885デフォルトの名無しさん
2019/03/15(金) 14:18:08.50ID:SEjqglYP 最新鋭の望遠鏡で使われてる
タイパンがカッコ良かった
UKシュミット望遠鏡自体は数十年の年季もんだけど
タイパン付けると最新鋭に変身してた
タイパンがカッコ良かった
UKシュミット望遠鏡自体は数十年の年季もんだけど
タイパン付けると最新鋭に変身してた
886デフォルトの名無しさん
2019/03/15(金) 14:21:07.58ID:SEjqglYP887デフォルトの名無しさん
2019/03/15(金) 18:27:46.26ID:HkVkKV93 オブジェクトをフォルダと考えるのは間違いなのですか
888デフォルトの名無しさん
2019/03/15(金) 18:38:30.61ID:PFD13TRH 考えてもいいぜ
889デフォルトの名無しさん
2019/03/15(金) 18:58:10.65ID:8Z2zh4Or Python初心者です。
scikit-learnで学習した学習結果を他の言語(C#)で利用したいと考えてます。
が、どうしたらいいのかわかりません。
どなたかご教授願います。
scikit-learnで学習した学習結果を他の言語(C#)で利用したいと考えてます。
が、どうしたらいいのかわかりません。
どなたかご教授願います。
890デフォルトの名無しさん
2019/03/15(金) 23:30:46.48ID:/jMwhNVt 最終的に何をしたいのかをもう少し具体的に書いたほうが良いと思う
個人的に言語は統一した方が楽と思うよ
個人的に言語は統一した方が楽と思うよ
891デフォルトの名無しさん
2019/03/15(金) 23:48:43.20ID:8Z2zh4Or scikit-learnでじゃんけんの人間の癖を学習させて、
そこそこの制度で予想できるようになったので、それをスマホアプリとして公開したいという欲が湧いてきました。
Pythonではスマホアプリの開発は難しそうなのでその学習結果をC#に移植したいと考えてるのですが、
そういう事は可能ですか?
そこそこの制度で予想できるようになったので、それをスマホアプリとして公開したいという欲が湧いてきました。
Pythonではスマホアプリの開発は難しそうなのでその学習結果をC#に移植したいと考えてるのですが、
そういう事は可能ですか?
892デフォルトの名無しさん
2019/03/16(土) 00:53:29.77ID:lomlnXfv !?
893デフォルトの名無しさん
2019/03/16(土) 06:12:09.99ID:MtyeuN+5 可能
pythonに不可能は無い
pythonに不可能は無い
894デフォルトの名無しさん
2019/03/16(土) 10:56:59.10ID:Eza8KstC >>891 iOS なら、Pythonista で簡単にアプリを作れるぞ。
Androidでもできるだろ。
そもそもiOSだと、C#じゃなくObjective-C やSwift になるからかなり垣根は高いぞ。
因みにPythonista からはObjective-C のライブラリを使うこともできるし自由に呼び出すこともできる。
なお、scikit-learn そのものをPythonistaで使うことはできない。 numpy は使えるが、scipy がインストールできない。
Androidでもできるだろ。
そもそもiOSだと、C#じゃなくObjective-C やSwift になるからかなり垣根は高いぞ。
因みにPythonista からはObjective-C のライブラリを使うこともできるし自由に呼び出すこともできる。
なお、scikit-learn そのものをPythonistaで使うことはできない。 numpy は使えるが、scipy がインストールできない。
895デフォルトの名無しさん
2019/03/16(土) 11:10:13.00ID:INaBYg0f いやC#つってんだからUnityで作るんだろJK
あれゲーム作るの簡単だからいいよな〜
あれゲーム作るの簡単だからいいよな〜
896デフォルトの名無しさん
2019/03/16(土) 11:18:22.65ID:mXGVm9Ao897デフォルトの名無しさん
2019/03/16(土) 11:20:10.33ID:mXGVm9Ao Unityって物理エンジンですよね?
scikit-learnのように機械学習もできるのですか?
scikit-learnのように機械学習もできるのですか?
898デフォルトの名無しさん
2019/03/16(土) 11:31:31.62ID:Slvebd/s 学習機能は通信を介したサービスとして提供したら
scikit-learnはサーバー側で動いてりゃ良いんだし
scikit-learnはサーバー側で動いてりゃ良いんだし
899デフォルトの名無しさん
2019/03/16(土) 11:44:44.11ID:+8YpvTs6■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 偏差値35大臣「すぐに経済的威圧するところへの依存はリスク」 [834922174]
- 【高市朗報】『劇場版「鬼滅の刃」無限城篇』、ギリのタイミングで中国上映公開し5日間で4億元(87億円)突破!!! [126042664]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
