暇つぶし2chat TECH
- 暇つぶし2ch1:デフォルトの名無しさん
19/03/18 13:42:55.36 +MPRGO7m.net
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その41【Ruby禁止】
スレリンク(tech板)

◆PythonのHome Page
URLリンク(www.python.org)
◆まとめwiki
URLリンク(python.rdy.jp)
◆Pythonのソースコードをそのまま5ちゃんにコピペすると
  インデントが崩れるので
  こういうところ↓にはってきてください
URLリンク(ideone.com)      Pythonするにはぷち手間あるのがめんどうかなぁ
URLリンク(codepad.org)      ほぼ直感的に使える。Run codeボタンあり。
URLリンク(pastebin.com)     まず


2:まずシンプル。 ttp://dpaste.com/      とてもシンプル。消えるまでの日数を長めに指定しる。 ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#) ----天麩羅ここまで----



3:デフォルトの名無しさん
19/03/18 18:27:30.56 SDOLD3fb.net
>>984
pygame
pyopengl
glut

4:デフォルトの名無しさん
19/03/18 19:58:50.54 FHDCRg6t.net
exe化で出来る限り「静か」なバイナリ作れる方法が無いかな
py2exeは3.7に対応してないかライブラリの方が対応してなくて、試したけど作れなかった
pyinstallerはexe実行時にtempにフォルダ作って、終了時にフォルダだけ残るのが気になる
exeのある場所とか任意の場所にフォルダ作ってフォルダだけ残るのは別に構わないんだが、システム側にゴミを残したくない

5:デフォルトの名無しさん
19/03/18 20:20:54.45 jiPExRTx.net
>>3
pyinstallerしおえたらいらないフォルダを消すバッチ作れ

6:デフォルトの名無しさん
19/03/18 21:37:51.04 C9BGuQ42.net
<__main__.sample object at 0x00DF1D30>
selfをprintしたらこれが出てきたのですが、00DFみたいなのはメモリの場所なんですか?

7:デフォルトの名無しさん
19/03/18 21:48:01.96 C9BGuQ42.net
結局selfはどういう用途に使うんですか
class myclass:
def myfunc(self,name):
self.name=name
↑これのself.nameの部分の意味と、使い方がわかりません

8:デフォルトの名無しさん
19/03/18 22:00:55.16 tRH350wW.net
>>1
乙パイソン

9:デフォルトの名無しさん
19/03/18 22:06:59.61 jiPExRTx.net
>>6
おまえはいいかげんインデントをちゃんとしろ
前スレへ(・∀・)カエレ!!!

10:デフォルトの名無しさん
19/03/18 22:10:00.76 jiPExRTx.net
>>5
       ,-┐
 ,ィ─、ri´^-─- 、 .┌f^f^f^f^f^f^f^f^f^┐
く  / , ,'   ヽ ヽ| ~ ~ ~ ~ ~ ~ ~ ~ ~│
 `<' / ,'レイ+tVvヽ!ヽト 知ってるが  │
  !/ ,' i |' {] , [}|ヽリ  お前の態度が |
  `!_{ iハト、__iフ,ノリ,n   気に入らない |
   // (^~ ̄ ̄∃_ア____n_____|
 _r''‐〈  `´ア/トr─!,.--'
<_>─}、  `」レ
'ヽ、   ,.ヘーァtイ
   Y、.,___/  |.|
    |  i `ー'i´

11:デフォルトの名無しさん
19/03/18 22:18:09.43 FHDCRg6t.net
>>4
「exe化」をしたらフォルダが作られるのではなく
「exeを実行」したら毎回フォルダが作られるから困ってます

12:デフォルトの名無しさん
19/03/18 22:22:44.48 jiPExRTx.net
>>10
%temp%フォルダ内に?
それとも
exeがおいてあるフォルダに?

13:デフォルトの名無しさん
19/03/18 23:12:34.21 IuFF1Fl8.net
最近勉強始めたんだけどWEBに干渉するようなプログラムってまず何を書けばいいんだ?

14:デフォルトの名無しさん
19/03/18 23:14:08.18 jiPExRTx.net
>>12
まずなにがしたいんだ?
ブラウザを自動化したいのか
鯖をアタックしたいのか
まともに鯖をいじる作業を自動化したいのか

15:デフォルトの名無しさん
19/03/19 00:38:15.55 2dsGqa+T.net
Pythonが2018年も人気ナンバーワン言語に
URLリンク(www.softantenna.com)

16:デフォルトの名無しさん
19/03/19 00:41:33.52 qkjR1zK4.net
>>6
URLリンク(i.imgur.com)

17:10
19/03/19 00:45:49.37 XVrNrTVD.net
>>11
前者

18:デフォルトの名無しさん
19/03/19 05:36:06.26 sliXT30Z.net
>>15
ですからなんの用途に使うんですか selfというのは場所を表すのですか?
printしてみるとメモリの場所らしきメッセージが出ます

19:
19/03/19 05:48:25.05 45LJYysD.net
>>17
myfunc は オブジェクトオリエンティド でいうところのメソッド
self.name は オブジェクトオリエンティド でいうところのプロパティ
self.X と書けば X はプロパティを示し、self はクラスのインスタンスを示す
以上に現れるキーワード「オブジェクトオリエンティド」「メソッド」「プロパティ」「クラス」「インスタンス」に心当たりがなければ、まずそれから調べてみてください.

20:デフォルトの名無しさん
19/03/19 05:49:15.22 Z5Hgz40o.net
Pythonと言うよりオブジェクト志向では親クラスのメソッドを呼ぶ時super.xx()みたいにするから、
それ使った時に子クラス(現在のクラス)の同名のメソッドだと明示するためにthis.xx()とかself.xx()とかするね。

あとは >>15 みたいにフィールド(クラス変数)と同名のメソッド引数と分けるためにも使われる。

21:デフォルトの名無しさん
19/03/19 07:38:23.72 vriWYZh/.net
>>16
Freezeとかなんとかいうヤツ使ってexe作るのどうよ

22:デフォルトの名無しさん
19/03/19 07:41:01.76 Gcgazy3G.net
>>6
YouTubeでProgramingWoopenのPython入門講座第16~21回の動画を見ろ。

23:デフォルトの名無しさん
19/03/19 08:57:41.33 Z5Hgz40o.net
つーかPythonは動的言語だからself.name = で代入する事で宣言無しでフィールド生成されるんだった。
静的言語ばっかりだとうっかり忘れがち。。。

24:デフォルトの名無しさん
19/03/19 09:23:51.33 7p2/yAlP.net
Jupyter notebookで大きなループを一つのセルで回すのって無謀でしょうか?
大きなループを回したい時、便利な環境って何がありますでしょうか?

25:デフォルトの名無しさん
19/03/19 10:12:32.34 cL/iV8oU.net
>>6
スコープとかnamespace は理解してる?

26:デフォルトの名無しさん
19/03/19 11:11:48.70 A58YbFZJ.net
>>17
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)

27:デフォルトの名無しさん
19/03/19 11:15:51.69 g1OP6P5B.net
>>20
cx_freezeも試してみたけど3.7対応していない

28:デフォルトの名無しさん
19/03/19 11:23:55.63 wwQ5Yjji.net
【中国は民族浄化、日本は】 10万円買ったら1万円没収、10月、自民にとっての邪魔者が浄化される
スレリンク(liveplus板)

29:デフォルトの名無しさん
19/03/19 11:28:42.76 sliXT30Z.net
>>24
スコープは変数の有効範囲で
名前空間はクラスやモジュール(python.pyみたいなファイル)のことですよね
>>21
見てみました
selfを関数の引数に指定することでクラス内の関数をインスタンスの持ち物に出来るということですね
別にselfでなくともいいみたいですが、なぜそうなるのか意味がわかりません
そういう決まりなんだと言われればそれまでですが

30:デフォルトの名無しさん
19/03/19 12:4


31:0:41.62 ID:I3ez8Qch.net



32:デフォルトの名無しさん
19/03/19 12:51:35.83 Z5Hgz40o.net
>>28
class myclass:
def myfunc(my,str):
my.name = str
my.name = で初めてnameフィールドが作成される。
my無しだとただのローカル変数になり、myfuncを抜けたら消滅する。
(もちろん、フィールドnameは存在しないので、a = myclassしたあとa.nameとしたらエラーになる)

33:デフォルトの名無しさん
19/03/19 13:20:43.07 SqXQzXb0.net
pythonってインスタンス作成時にプロパティは作成されないの?
プロパティにアクセスした時に初めてメモリが確保されるの?

34:デフォルトの名無しさん
19/03/19 13:34:21.37 Z5Hgz40o.net
そう言う事。
そして、もう少し調べたら__init__定義したら、メソッド呼出ではself省略できるっぽい。
(それだけでなく、nameの扱い自体もクラスフィールドとインスタンスフィールドという動作の違いも確認できた)
プロパティはフィールドとメソッドを関連ずけて、フィールドっぽい扱いで安全に運用するものなので別物。
私もPython初心者なのに、何であんたより詳しくなってるんだ。。。
class Myclass:
def __init__(my):
pass
def myfunc(my,str):
my.name = str
a = Myclass()
a.myfunc("taro")
b = Myclass()
b.myfunc("jiro")
print(a.name)
print(b.name)

35:デフォルトの名無しさん
19/03/19 13:59:12.91 SqXQzXb0.net
>>32
マジか、ありがとう
vbaみたいだぁ・・・
(vbaはもうちょい変で、インスタンス作成時ではなくプロパティにアクセスした時に初めてメモリが確保される)

36:デフォルトの名無しさん
19/03/19 14:04:53.09 A58YbFZJ.net
>>32
URLリンク(i.imgur.com)

37:デフォルトの名無しさん
19/03/19 14:10:15.96 A58YbFZJ.net
Self 省略してない件
URLリンク(i.imgur.com)

38:デフォルトの名無しさん
19/03/19 14:26:25.80 A58YbFZJ.net
>>32
_init_ 定義は 何の関係もないな

URLリンク(i.imgur.com)

39:デフォルトの名無しさん
19/03/19 14:30:00.14 A58YbFZJ.net
myを self に
結果は同じ
URLリンク(i.imgur.com)

40:デフォルトの名無しさん
19/03/19 14:31:38.83 A58YbFZJ.net
Self 省略したら、このざま
URLリンク(i.imgur.com)

41:デフォルトの名無しさん
19/03/19 14:34:55.30 A58YbFZJ.net
_init_ 復活させても駄目なものは駄目
「__init__定義したら、メソッド呼出ではself省略できるっぽい。」
は大嘘

URLリンク(i.imgur.com)

42:デフォルトの名無しさん
19/03/19 14:38:29.26 A58YbFZJ.net
My で揃えても無駄
URLリンク(i.imgur.com)

43:デフォルトの名無しさん
19/03/19 14:42:10.59 A58YbFZJ.net
当然、self でも無駄
「__init__定義したら、メソッド呼出ではself省略できるっぽい。」
は大嘘。
__init__定義しようが、メソッドでself 省略したらエラーですわ。
URLリンク(i.imgur.com)

44:デフォルトの名無しさん
19/03/19 14:53:47.13 Z5Hgz40o.net
>>41
「呼出では」って書いてるだろ。
定義の方は書かないとダメ。

45:デフォルトの名無しさん
19/03/19 15:15:18.87 A58YbFZJ.net
呼び出しでself 書いたらエラーですが
「__init__定義したら、メソッド呼出ではself省略できるっぽい。」
は大嘘。
むしろ、省略しなければならない。
URLリンク(i.imgur.com)

46:デフォルトの名無しさん
19/03/19 15:40:09.68 QeSFtlHj.net
「しなければならない」のに省「略」とはこれいかに

47:デフォルトの名無しさん
19/03/19 15:42:44.11 Z5Hgz40o.net
初心者いじめ楽しい?
>>32 の通り、私も初心者なんですが。
逆に__init__でa.myfunc(a,"taro")がエラーになる理由を教えて欲しいくらいだ。
(別に知らなくても書く上で困らないが)

48:デフォルトの名無しさん
19/03/19 16:01:05.13 vriWYZh/.net
>>26
それは失礼した
pyinstallerでonefileおぷしょんつかわないでexe等を生成→配るときは何か別のインストーラ使う
でやるしかないのかー

49:デフォルトの名無しさん
19/03/19 16:01:42.71 vriWYZh/.net
>>23
問題は途中でどんだけメモリ食うかだけなんじゃ

50:デフォルトの名無しさん
19/03/19 16:05:16.66 26aHKGbn.net
>>45
君の場合、Python初心者とかの問題じゃなくて、日本語初心者なんだよね…
変な日本語使わなくていいから、コードだけで語ってくれ

51:デフォルトの名無しさん
19/03/19 16:17:56.81 Z5Hgz40o.net
検証不足なだけなのを日本語初心者扱い。。。

52:デフォルトの名無しさん
19/03/19 16:27:12.81 XMTv5SE6.net
>>49
検証なら他所でやってくれ
迷惑でしかない

53:デフォルトの名無しさん
19/03/19 16:34:33.33 Z5Hgz40o.net
それは悪かったけど、訂正を求めるなら他にやりようあったよね。
__init__付けるとa.myfunc(a,"taro")はエラーになるから、省略じゃ無いって指摘すれば「ごめん」で済んだのに。
エラーが出るエラーが出るって病的に繰り返すだけってのもどうかと思うよ?
スレの無駄だからロムるね。
じゃあの。

54:デフォルトの名無しさん
19/03/19 16:48:51.60 +2Cq/+iw.net
覗いてみたら一問一答どころか初心者虐めしてて闇感じた
学校教師かよw

55:デフォルトの名無しさん
19/03/19 16:54:08.63 xdTah2Z6.net
>>32
>私もPython初心者なのに、何であんたより詳しくなってるんだ。。。


鼻膨らませてこんなこと書くから

56:デフォルトの名無しさん
19/03/19 17:59:14.56 7p2/yAlP.net
>>47
メモリはそんなに食わないと思いますが、
現在:セル100個くらいに書いている
やりたいこと:現在のセル100個をセル1個に入れて、forで回す
やりたいことが増えてネストが深くなるたびに、毎回この作業が必要になるのかなと

57:デフォルトの名無しさん
19/03/19 18:08:45.31 vriWYZh/.net
>>54
まず
Python全般の考え方として
深すぎるネストがあるソースはうんこスパゲティである
「python ネスト 減らす」でggr
いろんなことをやるときは
1作業グループ(自然言語で言う章づけと段落づけに似ている)毎に1つのクラスにまとめれこのへん↓嫁
URLリンク(myenigma.hatenablog.com)

58:デフォルトの名無しさん
19/03/19 18:11:13.54 sliXT30Z.net
pythonって12345みたいなループ表示はできないんですか?
別にリストを作らないとだめなんですか?

59:デフォルトの名無しさん
19/03/19 18:17:41.24 sliXT30Z.net
ごめんぬさい解決です

60:デフォルトの名無しさん
19/03/19 18:20:12.22 vriWYZh/.net
>>55
推敲途中で書き込まれてしまった
最後から2行目の語順がカオスになってるが
まあうまいこと察してチャン

61:デフォルトの名無しさん
19/03/19 18:29:04.69 sliXT30Z.net
sample.pyみたいなファイルがモジュールと考えていいのですか?

62:デフォルトの名無しさん
19/03/19 18:59:11.58 AStHbDSu.net
>>17
>printしてみるとメモリの場所らしきメッセージが出ます
そうだよ
URLリンク(ideone.com)
URLリンク(docs.python.org)

63:デフォルトの名無しさん
19/03/19 19:01:42.61 AStHbDSu.net
>>59
> sample.pyみたいなファイルがモジュールと考えていいのですか?
そうだよ
"モジュールは Python の定義や文が入ったファイルです。ファイル名はモジュール名に接尾語 .py がついたものになります。"
URLリンク(docs.python.org)

64:デフォルトの名無しさん
19/03/19 19:13:43.69 sliXT30Z.net
メンバ変数に
self.nameみたいにつけるのは、単なるルールってことですか?
メンバ変数作るときのルール?

65:デフォルトの名無しさん
19/03/19 19:28:33.28 AStHbDSu.net
>>62
関数からはインスタンスオブジェクト(メソッド、変数)がスコープ外だから、そのままだとアクセスできない
Pythonではクラス内で定義される関数の第一引数にインスタンス自身(self)を渡すことによりアクセスできるようにしている
↓みれ
URLリンク(docs.python.org)

66:デフォルトの名無しさん
19/03/19 19:28:54.41 oLwbVC8A.net
>>62
付けなきゃローカル変数になってメソッド抜けると消える

67:デフォルトの名無しさん
19/03/19 19:40:40.10 sliXT30Z.net
>>63
>>64
ありがとうごじあます
リンク先よみます

68:デフォルトの名無しさん
19/03/19 20:15:28.53 sliXT30Z.net
>>63
インスタンス自身がself引数に渡されるといいますが、
instance変数の部分がインスタンス自身と考えていいんでしょうか
確認方法がわかりませんでした
URLリンク(codepad.org)

69:デフォルトの名無しさん
19/03/19 20:15:40.20 sliXT30Z.net
class Test():
def __init__(self,var):
self.var=var
def func(self):
print(self.var)
instance = Test("aaa")
instance.func()

70:デフォルトの名無しさん
19/03/19 20:24:24.48 AStHbDSu.net
>>66
>>60

71:デフォルトの名無しさん
19/03/19 20:31:38.14 AStHbDSu.net
>>54
キューでもスタックでもいいから何か適した探索アルゴリズムあるかもしれない

72:デフォルトの名無しさん
19/03/19 21:49:37.60 A/UmZGKk.net
指定桁の整数部分で切り捨てるにはどうすればいいですか?
roundの四捨五入じゃなくて、切り捨てです。
n = 456.789
round(n, -1)
>>460
1の位を切り捨てて、450にしたいです。

73:デフォルトの名無しさん
19/03/19 22:13:26.97 A/UmZGKk.net
re.subの正規表現で置き換えしたらできたんですが、
切り捨てのようななモジュールはないでしょうか?

74:デフォルトの名無しさん
19/03/19 22:16:01.91 oLwbVC8A.net
>>70
import math
math.floor(n/10)*10

75:デフォルトの名無しさん
19/03/19 22:44:30.22 KlvkKTYB.net
Ruby ではクラス直下では、self(this)は、クラスを指す。
一方、initialize 内では、new で呼ばれた各インスタンスを指す
class Cat
p self #=> Cat クラス
def initialize( name, weight )
@name = name
@weight = weight
p self #=> 各インスタンス
end
end
bob = Cat.new( "bob", 5 )
alice = Cat.new( "alice", 4 )
出力
Cat
#<Cat: @name="bob", @weight=5>
#<Cat: @name="alice", @weight=4>
オブジェクト指向をわかっていない人には、Python は無理
まず、Rubyでオブジェクト指向・関数型を学んでから、
Python, JavaScript, Kotlin などをやらないと無理

76:デフォルトの名無しさん
19/03/19 22:53:59.42 A/UmZGKk.net
>>72
おぉー、ありがとう
floorが検索に出てきても少数切捨ての話だけで整数の話はなかったのに、
10で割って掛ける。すごい全然思いつかなかった

77:デフォルトの名無しさん
19/03/19 23:36:11.27 gx/b6f7p.net
>>73
死ね

78:デフォルトの名無しさん
19/03/20 00:13:24.71 6ln9W50J.net
>73
rubyは言語の発想としては悪くないんだけど、今やもう未来がなさすぎる
最近はもうオブジェクト指向を無理にやらんでも良いって流れにもなってきてるしな

79:73
19/03/20 00:49:00.11 RdYQnT9u.net
Pythonの文法を学ぶというのと、
オブジェクト指向・関数型を学ぶというのは、まったく次元が違う話
アルゴリズムなどもそう。
Pythonの文法とは無関係だから、Rubyで学ぶ
だから初心者は、Rubyから始めろって言われるわけ
Ruby以外の言語では、JavaScriptのprototype など、
その言語特有のトリックに惑わされるために、まともに学べない
Pythonでは、アンダーバー(_)で始まる変数名などの、トリックを使っているし、ややこしい
Rubyはオワコンと言われているけど、人気がすごい!
図書館でも、すべての本が貸出中

80:デフォルトの名無しさん
19/03/20 00:51:59.36 D6kxNzj1.net
>>72 int(n//10)*10

81:デフォルトの名無しさん
19/03/20 01:43:22.87 6ln9W50J.net
>>77
>初心者は、Rubyから始めろって言われるわけ
昔言われてたな。誰もやってなかった
あれがステマだったと最近気づいた

82:デフォルトの名無しさん
19/03/20 02:13:49.59 oK7gZRvl.net
Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
def add(a, b)
a + b
end
def opTwo(a, b, func)



83: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



84:デフォルトの名無しさん
19/03/20 02:18:32.13 oK7gZRvl.net
def、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、
==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww

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

86:デフォルトの名無しさん
19/03/20 02:19:58.52 oK7gZRvl.net
クロージャって何がいいの?
スレリンク(tech板:261番)
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が
> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。
と語っているね

URLリンク(www.atmarkit.co.jp)

87:デフォルトの名無しさん
19/03/20 02:20:31.17 oK7gZRvl.net
Pythonが2018年も人気ナンバーワン言語に - Rubyは13位へ
URLリンク(www.softantenna.com)
>日本生まれのプログラミング言語Rubyの順位は昨年の12位から13位へと一つ順位を落としています。

URLリンク(findy-code.io)
↑「衰退するかもしれない言語」のRubyのグラフ凄すぎwww

88:デフォルトの名無しさん
19/03/20 02:51:31.38 oK7gZRvl.net
大人気言語るっピぃが実践する驚き最大の勝利の大法則!!!
お前らションベンチビんなよ!?
Python:
def double(x):
return x * 2
double(3) #=> 6
同等ラムダ
(lambda x: x * 2)(3) #=> 6
JavaScript:
function double(x) {
return x * 2;
}
double(3); //=> 6
同等ラムダ
(x => x * 2)(3); //=> 6
Rubz(笑)ころん
def double(x)
x * 2
end
double 3
#=> 6
同等?ラムダ?www
(lambda {|x| x * 2}) 3 #=> エラー(笑)
(lambda {|x| x * 2})(3) #=> エラー()
(lambda {|x| x * 2}).call(3) #=> 6
うわぁ~さすがるっびすごくわかりやすいですぅ~wwww

89:73
19/03/20 03:00:25.17 RdYQnT9u.net
KENTA / 雑食系エンジニアTV と言う人が、
YouTube で、初心者は、Ruby から勉強するように勧めている
多くの人が、初心者には、Rubyを勧めている
Dir.glob( 'C:/Users/Owner/Documents/test/*.txt' ) do |file|
end
Rubyでは、Windows/Linux の両方で、パス区切りに、/ が使えるから、\ を使わなくてもよい
Python では、\, \\ を使っているから、ややこしくてたまらん!

90:デフォルトの名無しさん
19/03/20 03:02:42.97 oK7gZRvl.net
これだね!
Rubyを長く使い続


91:けることを僕がお薦めしない理由を説明します - YouTube https://www.youtube.com/watch?v=2wfQ3iG08UI



92:デフォルトの名無しさん
19/03/20 03:04:18.73 oK7gZRvl.net
日本生まれのクソ言語Ruby『最も嫌われているプログラミング言語』堂々ランクイン!!
URLリンク(japan.zdnet.com)
おめでとうクソ言語!🎊
おめでとう日本の恥!!www
URLリンク(japan.zdnet.com)

93:デフォルトの名無しさん
19/03/20 03:14:48.95 oK7gZRvl.net
Ruby のココがダメ
URLリンク(qiita.com)
・メソッド名の別名がありすぎ
・何かにつけて「nil にそんなメソッドねえよ」
・ローカル変数なのかメソッド呼び出しなのか
・ブロックなのかハッシュなのか
遅い
・ドキュメントが不十分
・用語集が無いよ
・Windows ユーザーがいつも置き去り
・既定の文字コード
・フリップフロップ ワケわかめ

94:デフォルトの名無しさん
19/03/20 03:20:23.93 wCjkLEuI.net
速度に関してはどんぐりの背比べ

95:デフォルトの名無しさん
19/03/20 03:22:38.74 oK7gZRvl.net
「Railsは終わった」と言われる理由
URLリンク(qiita.com)という柔軟性の高い言語によって開発することができる
> Rubyは以下のような弱点があり、コードに問題のあるRailsプロダクトが多く生まれてしまいました。
・読みにくい
・Rubyしか触っていないエンジニアはある一定レベルで成長が止まる
・美しく書くという文化でしか質を担保する仕組みが無い
・Rubyの将来性

96:デフォルトの名無しさん
19/03/20 03:24:19.47 oK7gZRvl.net
1. 読みにくい
Rubyのコードは引数や返り値の定義がないため、実際に読んでみないと何が帰ってくるのかわからないです。
なのでコードリーディングに時間がかかりますし、バグの混入確率も高いです。

97:デフォルトの名無しさん
19/03/20 03:25:58.59 oK7gZRvl.net
2. Rubyしか触っていないエンジニアはある一定レベルで成長が止まる
Rubyという言語は型を全く定義しなくても動きますが、型を意識して書かなければ簡単に崩壊してしまいます。
しかし、型を意識する書き方というのはRubyでは学ぶことはできません。(一応学べるかもしれませんが、Rubyの型は他言語に比べて挙動の把握が難しいです)
このパラドックスにより、質の悪いRailsプロジェクトが生まれやすくなっています。
そのためRubyしか触っていないエンジニアは一定のレベルで成長が止まると考えています。
その他、クラスの継承、インターフェース、ビルダーパターン、リアクティブプログラミング、ジェネリクス、ラムダなどのパラダイムはRubyでは学ぶことはできません。

98:デフォルトの名無しさん
19/03/20 03:27:13.16 oK7gZRvl.net
3.美しく書くという文化でしか質を担保する仕組みが無い
Rubyは他人が書いたコードを読むのにエネルギーが要る言語だと思います。
型定義がある言語では入力と出力の形式がある程度定まっているので、比較的読みやすいです。
Rubyは返り値がどのような型になるかわからないので、メソッド名が妥当であるか?であったり、美しくわかりやすく書かれているかもしくは、テストを書いているか?が重要になってきます。
熟練者のコードは非常に読みやすいかもしれませんが、そうでない場合、コードリーディングが大変です。
こうしたコールドリーディングを簡単にするために、美しく書く文化やテストを書くという文化があるのですが、
どこまで美しく書くか、どの程度テストを書くかは属人的であるので、質が担保しにくいです。
追い打ちをかけるようにRubyは様々な書き方ができてしまうので、よりコードリーディングが難しくなります。
ダメなプログラミング言語の代名詞としてPHPが挙げられますが、それがRubyに置き換わる時が来るかもしれません

99:デフォルトの名無しさん
19/03/20 03:28:06.49 oK7gZRvl.net
4. Rubyの将来性
これは個人的な愚痴に近いのですが、Rubyの開発の方向性と現場で必要なものがだんだんと違ってきているのではないかと最近は感じています。
Ruby3では速く動作することが頻繁に取り上げられますが、実際にそれでいまエンジニアが抱えている問題が解決するのか・・・?と思ってしまいます。
Rubyでチーム開発しやすいように、型宣言などの開発者を支援するような機能もほしいなという声もあるのではないでしょうか。

100:デフォルトの名無しさん
19/03/20 03:30:23.84 oK7gZRvl.net
Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察
URLリンク(postd.cc)

101:デフォルトの名無しさん
19/03/20 03:37:06.36 oK7gZRvl.net
Rubyが今のPythonの地位にいない理由
URLリンク(shinh.skr.jp)
さて、本来PHPを学ぶべきだった人たちが、Railsファンになり、Rubyのカンファレンスに行き、エモい発表を聞いて二世三世になったのである。
こういう人達の中には残念ながら、技術的な背景が足りない人もいて、そういう人達が人類がコンピュータサイエンスとして培ってきた歴史とかをある程度把握しないままに、なんだか適当な発言をするのである。例えば「テストファーストはRuby発祥」的な。
そういう人達はどこの世界にもいるものだけど……Rails界隈には許容量を越える量で発生してしまった。で技術がわかるRails関係ない人の感想は残念ながら、「Ruby?あれなんかキモい。
Pythonで十分だし」みたいな感じになってしまったのであった。Hacker Newsから一例をひいてみよう。
URLリンク(news.ycombinator.com)
"To me the biggest annoyance about the Ruby community is the belief that they invented everything"
「Rubyコミュニティの連中はヤツラが全てのことを発明したと信じてやがってムカつく」
"People don't hate ruby, people hate the ruby on rails community" "This" "+1 to this"
「Rubyが嫌いなんじゃなくて、Railsコミュニティが嫌いなんだよ」「それな」「ほんこれ」
いやあ……ひどい言われようである。こんな謎宗教みたいな扱いを受けてれば、ある程度規模の大きい企業、まぁデカいのではマイクロソフトとか、の人が採用しよう、って感じにはならない。
Webアプリフレームワークならともかく、他の分野ではPythonという十分に強い代替があるならなおさら。というわけで、Rubyが今のPython地位を確立できてない理由は「なんかキモそうだから」なのである。
一方で、Railsの勃興とエモい人の流入みたいなのが無ければRubyが今ほど流行ってたかというと……それもあやしいと思う。
この文章の前半部分でムダに書いた通り、Rails以前は知名度ゼロに近かったので、むしろRailsのおかげでRubyは本来集める予定だった以上の注目を集めている、という感もある。

102:デフォルトの名無しさん
19/03/20 03:37:20.12 6ln9W50J.net
もうちょっとまとめて

103:デフォルトの名無しさん
19/03/20 03:42:42.67 oK7gZRvl.net
Rubyの死?開発者はどの言語を学ぶべきか?
URLリンク(www.softantenna.com)
Rubyの人気が低下している現在、開発者は別のプログラミング言語を習得したほうが良いという趣旨の考察を展開しています。
同記事はRubyの人気低下の証拠として、Indeedによる求人数でRubyの人気が9番目にまで低下しているとのこと、
IEEE Spectrumのプログラミング言語ランキングで、Rubyの順位が2014年の8位から2017年の12位まで低下していること、さらにCoding DojoでRubyコースが終了したことなど、幾つかの事実を挙げています。
またコンピューターサイエンス分野で関心が低いことや、Twitterを始めとした巨大企業がRailsの採用をやめたこと、Stack Overflowで関心が低下していることなども、Ruby人気が低下している具体例としてリストアップしています。
同記事では「Python」と「JavaScript」を学ぶべき言語として推奨しています。
Pythonは、Web開発やデータサイエンス、その他分野でここ数年急激に広まっており、Rubyと似たシンタックスを採用している部分もあるため、Ruby開発者にとっても習得しやすいプログラミング言語であると説明されています。
またJavaScriptは、全世界で最も使用されている言語であり、Node.js、AngularやReactといった強力なフレームワークによって、
バックエンドからフロントエンドまで幅広くカバーした、価値のあるプログラミング言語であるとされています。
IEEE Spectrumの2017年ランキングでもPython言語は1位となっていてこの主張はある程度納得できるところかもしれません。
同様に、JavaScriptの応用範囲の広さも、誰もが認めるところだと思います。

104:デフォルトの名無しさん
19/03/20 03:44:38.64 oK7gZRvl.net
RubyはPerlのようになる?
Rubyの今後に関しては、2008年頃から人気が低下したPerlを例にとって、人気は低下していくものの、完全になくなることはないと結論づけられています。

105:デフォルトの名無しさん
19/03/20 09:01:56.76 nJGjaI7U.net
Rubyどうでもいいよ。Pythonの話しようよ。

106:デフォルトの名無しさん
19/03/20 09:14:33.76 wCjkLEuI.net
RubyをディスらなければPythonにメリットを見いだせない人なのでしょう

107:デフォルトの名無しさん
19/03/20 09:21:48.45 KzgtImdp.net
pythonの人気に嫉妬しながらも摺寄り、騙し、利用して宣伝しなければ生きていけない死にかけクソ言語とそれにハエ信者

108:デフォルトの名無しさん
19/03/20 10:43:32.91 24ejKjWR.net
pyautoguiであいまいな画像認識は可能でしょうか?

109:デフォルトの名無しさん
19/03/20 10:52:19.77 Y7BJ+cKS.net
>>104
アイデア力次第じゃね?

110:デフォルトの名無しさん
19/03/20 10:57:22.47 24ejKjWR.net
>>105
そういう関数があるわけではないのですね
ありがとうございます

111:デフォルトの名無しさん
19/03/20 12:26:41.18 LJEBRQCY.net
>>55
ありがとうございます!
パラメータを少しずつ変化させながら繰り返そうとしたら大変でしたので、
1つのクラスにまとめます
(まずPythonがネストを増やすたびにインテントを増やさなきゃいけないのは、そもそも深くするなってことでしょうし)

112:デフォルトの名無しさん
19/03/20 12:42:35.11 OI8TGBSL.net
selfに何が出力されているのか確認できる超簡単なコードはないですか
アホですみません、、、
インスタンス自身と言われてもわからない
testclass()
↑これがインスタンス自身?

113:デフォルトの名無しさん
19/03/20 13:37:17.36 Y7BJ+cKS.net
>>107

>インデントについて
そのとおり
深くするな
インデントの深さは 闇の深さだ

114:デフォルトの名無しさん
19/03/20 13:42:32.33 Y7BJ+cKS.net
>>108
アンカーを省略するんじゃない
これ↓でも読んどけ
URLリンク(wa3.i-3-i.info)

115:デフォルトの名無しさん
19/03/20 15:43:52.30 jMIYtB7h.net
>81
rubyってperlやC++の糞なところに嫌気が差して造り始めた(Matz)のに
perlやC++以上の糞なものが出来てしまった感

116:デフォルトの名無しさん
19/03/20 15:45:39.55 jMIYtB7h.net
>>84
「かもしれない」
じゃなくて
衰退する
断言する

117:デフォルトの名無しさん
19/03/20 16:00:12.64 xpDuuMJR.net
今勉強している参考書に
return;
って書いてあったんだけどこれってオカシイかな?

118:デフォルトの名無しさん
19/03/20 16:02:32.78 KzgtImdp.net
それだいぶ古い記事だから。
結果は出たじゃん。衰退した。
だから人気言語のスレで初心者騙して衰退世界に引擦り込もうと詐欺行為を働いてるわけ。

119:デフォルトの名無しさん
19/03/20 16:02:42.89 jMIYtB7h.net
python系の野良ブログとかのサンプルは
余計な;ついてるコード多いよ

120:デフォルトの名無しさん
19/03/20 16:27:14.92 xpDuuMJR.net
>>115
ありがとう。じゃあやっぱりこの ; は要らないんだね
この12歳からはじめる、、、って本記述ミスが多いんだよなぁ

121:デフォルトの名無しさん
19/03/20 16:38:42.98 jMIYtB7h.net
間違いの全く無い教科書より
間違ってる教科書の方が勉強になる
と言ってた先輩が居たな

122:デフォルトの名無しさん
19/03/20 17:03:48.50 JH/CIXVH.net
その先輩はアフォ

123:デフォルトの名無しさん
19/03/20 17:45:30.18 mjOwP74k.net
おかしいかどうかは自分でコード描いて実行してみれば良い
エラーが出れば、間違い(有害的記載事項)
エラーが出なければ、それでもOK
;があってもなくても動くのならOK(無害的記載事項)
;がないと動かないのなら必要的記載事項
;があるとないとで異なる動きをするのなら、その;には独自の意味があるのだから、有益的記載事項

つまり、ここで聞かなくても自分でコード描いて実行してみれば答えが得られる

124:デフォルトの名無しさん
19/03/20 18:30:13.87 OI8TGBSL.net
>>110
python の場合は
Class()
などとしたものがインスタンスですよね?
インスタンス自身がselfに入るというのが理解できないのですが、どういった状態がselfにインスタンス自身が入るということなんでしょうか

125:デフォルトの名無しさん
19/03/20 18:34:05.47 9t7s3Kng.net
そんなにきになるなら
print(self)

126:デフォルトの名無しさん
19/03/20 18:34:31.94 Y7BJ+cKS.net
>>120
ちょっとずれてないか
クラスはクラス
クラスを召喚してきたものがインスタンス
これもよめ
URLリンク(qiita.com)

127:デフォルトの名無しさん
19/03/20 18:36:23.30 OI8TGBSL.net
>>120
class = Class()
などとしてインスタンス化したものと同じものが入っていることがわかりましたが、それによってどういう効果があるのかイメージできませ

128:デフォルトの名無しさん
19/03/20 18:39:04.93 6ln9W50J.net
>>120
逆にselfが無い場合を考えてみれば良い
自分のメソッドやプロパティにアクセスできなくなり、
利便性が極端に落ちる
で、これを聞けば無くても書くことはできるって思うんだろう
そう、書くことはできるが不便
利便性のために存在する
selfがない言語とかクソ過ぎて使う気にならん
とにかく気にせずに使えば良い。そのうち分かる

129:デフォルトの名無しさん
19/03/20 18:43:07.68 Y7BJ+cKS.net
>>123
アンカー間違ってるぞ
124がイイ!!(・∀・)こと言ってるが
具体的にプログラム書いてみて、
ないと困る実感が生じない限り
イメージできないとか
わかんねー感覚は消えないんだろう。
とにかく何かプログラムをかけ。クラスがいくつかあるようなやつだ。
かいてみそ。
かけばわかるようになる、かもしれない。
書いてみない限りはイメージできないままだ。

130:デフォルトの名無しさん
19/03/20 19:41:58.67 OI8TGBSL.net
↑ありがとうございました
とりあえず1つ用途がわかりました
他の関数からメンバ関数(initはメンバ関数とよんでいいんですよね?)にアクセスするために使うんですね
class MyClass:
def __init__(self):
#メンバ変数
n = 1111
def get_self_id(self):
print(n)
mc = MyClass()

131:デフォルトの名無しさん
19/03/20 19:46:19.10 Y7BJ+cKS.net
わかってなにより
だがしかし
5ちゃんにおけるインデントについては
まだ理解してないんだな

132:デフォルトの名無しさん
19/03/20 20:06:20.00 PLP6AfKj.net
>>126
self.nにしないとmc.get_self_id()でエラー

133:デフォルトの名無しさん
19/03/20 21:32:39.53 sUcJ4lOd.net
URLリンク(i.imgur.com)

134:デフォルトの名無しさん
19/03/20 22:01:41.47 SonzdXCJ.net
楽天って英語公用語化に続いてプログラミングを社員に強制するそうじゃん
しかも今更Javaとか
せめてPythonにしとけよ
URLリンク(web.smartnews.com)
退職させたい人にアンドロイドアプリを作らせて
できなかったら退職するよう仕向ける気じゃないだろうな。

135:デフォルトの名無しさん
19/03/20 22:11:32.69 sUcJ4lOd.net
Google のように独自言語作らない時点でJAP企業の限界が見える

136:デフォルトの名無しさん
19/03/21 03:03:01.22 7H/hg7Lf.net
世界レベルで業界に影響力を持つ企業が存在しないのだから作っても意味ない

137:デフォルトの名無しさん
19/03/21 03:36:21.67 7H/hg7Lf.net
社内でしか使われない珍言語になって開発効率が落ちるだけ

138:デフォルトの名無しさん
19/03/21 10:47:48.07 yLWBHIB/.net
pythonのリスト使ってみたんですが、pythonではカッコつきのまま表示されるんでしょうか?URLリンク(www.isl.ne.jp)

139:デフォルトの名無しさん
19/03/21 10:50:49.61 yLWBHIB/.net
なんだforで回すだけですか
vs codeで謎のエラーが出てました

140:デフォルトの名無しさん
19/03/21 11:33:30.84 tu8B3kqR.net
>>134
そう

141:デフォルトの名無しさん
19/03/21 12:04:52.08 jEHADO0u.net
>>134
そのサイト参考にしないほうがいいよ

142:デフォルトの名無しさん
19/03/21 15:59:11.13 jAL4OyhK.net
なんかおかしいなと思ったら2.7系のサイトだった
読むなこんなもん

143:デフォルトの名無しさん
19/03/21 16:35:02.89 yLWBHIB/.net
はい

144:デフォルトの名無しさん
19/03/21 18:00:49.01 GE5MQuH9.net
はいじゃないが

145:デフォルトの名無しさん
19/03/21 19:26:49.76 yLWBHIB/.net
URLリンク(codepad.org)
self野郎なんですが、インスタンス自身がselfに渡されることで変数が同じクラス内で共有出来るってことだと思うんですが、インスタンス自身が渡されることでなぜ共有できるようになるんですか?
なんかわかりやすい例えないですかね?
a = tes("aaa")がインスタンス
このインスタンスがどういう形で渡されているのか調べる方法はありませんか?

146:デフォルトの名無しさん
19/03/21 19:28:00.72 8bsaWjVO.net
>>141
print(a)

147:デフォルトの名無しさん
19/03/21 19:28:55.88 Ku3+gGvP.net
print(tes("aaa"))

148:デフォルトの名無しさん
19/03/21 19:29:34.33 yLWBHIB/.net
ちなみにこのaをprintしても場所っぽいメッセージが出てくるだけです

149:デフォルトの名無しさん
19/03/21 19:32:20.40 3b986hBs.net
インスタンスはね、a と言うんだ本当はね
だけど小ちゃいから自分のことself って呼ぶんだよ
可笑しいな selfちゃん

150:デフォルトの名無しさん
19/03/21 19:32:57.10 3b986hBs.net
>>144
a は場所を参照してるから

151:デフォルトの名無しさん
19/03/21 19:34:31.84 yLWBHIB/.net
<__main__.tes object at 0x01071D30>
といった場所?が渡されていることで、なぜクラス内で変数を共有できるようになるのかわからないのです
>>145
そっちがインスタンスということで理解します

152:デフォルトの名無しさん
19/03/21 19:37:23.77 cyLDjoYG.net
でもクラス外から呼ぶときは、self なんて子供が使うような呼び名を使ってはいけないぞ
ちゃんと苗字a 、関数名前 で呼べ
それが社会常識ってもんよ

153:デフォルトの名無しさん
19/03/21 19:37:34.32 VTQPNSsp.net
参照変数という考え方を学んだほうがいい
javaでの説明だけど、ここのサイトが分かりやすい
URLリンク(www.kab-studio.biz)

154:デフォルトの名無しさん
19/03/21 19:42:42.24 susRoq6I.net
そこまで考え出すと、逆にかなり難しくなるんじゃないかな
pythonはCのラッパーだから、あまり低級な事を考えるとラッパーとしてどうなっているかも考える必要が出てくる
俺もラッパーとしてどう動いてるかなんて考えない。学習コストとリターンが全�


155:ュ見合ってない



156:デフォルトの名無しさん
19/03/21 19:43:35.16 1P02QAf5.net
self はjava, C のself と紛らわしいので
我が家の(wagayano)
にしてみた。

URLリンク(i.imgur.com)

157:デフォルトの名無しさん
19/03/21 19:43:48.37 eKH7lBgF.net
Pythonで説明してくれてるとこあったぞぬ
URLリンク(crimnut.hateblo.jp)
self野郎くんはもうコテハン「self野郎」って名乗っちゃっておkだとおもうの

158:デフォルトの名無しさん
19/03/21 19:53:08.53 1P02QAf5.net
yamada の 2222が出てくる
URLリンク(i.imgur.com)

159:デフォルトの名無しさん
19/03/21 19:57:56.42 pNXTHJSM.net
どうしてリストなどには属性をくっつけられないんだろう
a = []
a.x = 1
AttributeError: 'list' object has no attribute ‘x’

160:デフォルトの名無しさん
19/03/21 19:58:16.98 KkuZPOOG.net
>>152
セルフ野郎って違うモノを想像しちゃって嫌だわぁw

161:デフォルトの名無しさん
19/03/21 20:16:30.57 fbHrFGME.net
kivyを使う時にjupyter notebookだと画面が乱れてしまって上手く動きません
pyファイルを作ってコマンドからならちゃんと動くんだけど効率が悪いです。
jupyter notebookのような代替ソフトを知りませんか?m(_ _)m

162:デフォルトの名無しさん
19/03/21 20:23:33.14 eKH7lBgF.net
>>156
OS書けよ

163:デフォルトの名無しさん
19/03/21 20:23:39.72 yLWBHIB/.net
ありがとう
勉強してきます

164:デフォルトの名無しさん
19/03/21 20:26:59.01 eKH7lBgF.net
>>155はエロいやつw

165:デフォルトの名無しさん
19/03/21 20:27:36.58 eKH7lBgF.net
>>154
後付け反対! ε=(`・ω・´)

166:デフォルトの名無しさん
19/03/21 21:01:07.00 /qmYOdp9.net
どこの串カツ屋だよ
後付けくらい許してやれよ

167:デフォルトの名無しさん
19/03/21 21:04:49.41 yLWBHIB/.net
selfに参照渡しされるアドレスってのはインスタンスといいますが、インスタンスの引数のアドレスことではないのですか?

168:デフォルトの名無しさん
19/03/22 04:34:23.47 4np0yjmV.net
[100,200,-50,150,-100]
こんな感じで一日毎のFXの収支が入った配列があった時
要素を順番に足して収支が積み上がるような配列を作りたいんだけど。。。
0+100=100
100+200=300
300+(-50)=250
250+150=400
400+(-100)=300
こんな計算をして
[100,300,250,400,300]
こんな配列を作りたいんだけどいい方法教えてエロい人
forとか使わないでシンプルなので頼んます><

169:デフォルトの名無しさん
19/03/22 05:21:41.85 jRDRMKF2.net
cumsum

170:デフォルトの名無しさん
19/03/22 05:29:25.13 4np0yjmV.net
>>164
うわぁ、ありがとう
僕がイメージしてた通りの関数でした!!
ぜひ使わせていただきます

171:デフォルトの名無しさん
19/03/22 05:30:39.63 khPW0F9t.net
>>163
普通にnumpyで加算すれば良いだけでは?

172:デフォルトの名無しさん
19/03/22 05:36:51.58 4np0yjmV.net
>>166
numpyのcumsumですね!
できました

173:デフォルトの名無しさん
19/03/22 11:46:18.44 ZTaR0qbl.net
前にも書き込ませていただいたものですが、
gtk3+python+webkit2でepubビューアを作っているのですが、現在のスクロール位置を取得したいのですが、
y_pos_js ="var x; x=document.body.scrollTop"
def js_run(self, js_name, js_return=True):
run_js_finish = self._js_finish if js_return else None
self.viewer.view.run_javascript(js_name, None, run_js_finish, None);
def _js_finish(self, webview, result, user_data=None):
js_result = self.viewer.view.run_javascript_finish(result)
if js_result is not None:
value = js_result.get_js_value()
self.js_value = value.to_double()

print((self.js_value))
と書いても、0.0となってしまい、値を取得できません。
ひょっとすると、
URLリンク(havelog.ayumusato.com)
ここのページにあるようにdocument.body.scrollTopは即座に反映されないのかもしれませんが(情報が古い?)、
javascirptがわからずどうすることもできません。
pythonのtimeで遅延させても無駄なようで、javascirptの方で遅延させるしかないのでしょうか?
どなたかお知恵を拝借できると幸甚です。
URLリンク(stackoverflow.com)
上のpythonスクリプトの元ネタはここです。

174:デフォルトの名無しさん
19/03/22 12:54:11.57 mlxJ4y7J.net
document.documentElement.scrollTop

175:デフォルトの名無しさん
19/03/22 13:10:50.39 ZTaR0qbl.net
var x; x = window.scrollY;
としたら機能しました。どうもお騒がせしました。

176:デフォルトの名無しさん
19/03/22 13:15:44.38 vKzweDfk.net
この本ほかの本よりメリットどこにあるですか
URLリンク(www.amazon.co.jp)

177:デフォルトの名無しさん
19/03/22 13:21:26.19 g5h3mGP7.net
Ruby で、Selenium WebDriver なら、
execute_script で直接、JavaScript の命令文を実行できる
TOPまでスクロール
execute_script('window.scroll(0,1);')
BOTTOMまでスクロール
execute_script('window.scroll(0,10000);')

178:デフォルトの名無しさん
19/03/22 13:36:48.19 f/f2Qmpp.net
>>172
クソ言語ruby勧めるのやめて

179:デフォルトの名無しさん
19/03/22 13:59:52.41 E/4CSIEY.net
>>172
死ね

180:デフォルトの名無しさん
19/03/22 14:04:08.80 aiMUayIq.net
>>173
seleniumはjava製ソフトで各種言語にドライバーが出てる。
pythonやnode向けドライバーのほうがよっぽど利用者多くてよくメンテされてる。
クソ言語信者は他人のフンドシで相撲とってるだけ。
java製ソフトにjavascript実行させてるのを誇るというギャグw

181:172
19/03/22 15:07:59.51 g5h3mGP7.net
Ruby で、Nokogiri, Selenium WebDriver なら、
execute_script で直接、JavaScript の命令文を実行できる
jQuery も実行できるから、CSS Selector で検索もできる。
複雑な検索は、Nokogiri で、Xpath でも良いし
jsCode = <<"EOT"
var text = $( "#btn1" ).text( );
$( "#parent" ).append( text );
EOT
# JavaScript を実行
driver.execute_script jsCode

182:デフォルトの名無しさん
19/03/22 15:13:48.49 E/4CSIEY.net
>>176
死ね

183:デフォルトの名無しさん
19/03/22 15:19:14.86 aiMUayIq.net
driver.execute_script jsCode
 ↑javaのコードに  ↑jsコード文字列
渡してるだけwwwww
もちろんこんなのPython用ドライバーもnode用ドライバーもあって、
当然できることも同じ。
どころか不人気クソ言語用ドライバーよりよっぽどよくメンテされており使用者も多いw

184:デフォルトの名無しさん
19/03/22 15:54:48.11 t/nkQ3ne.net
Pythonにも言えるだろうけど、JavaScriptはwebのアセンブラみたいな地位だから変えられないけど、
型がないからデバッグが大変という事でTypeScriptとかelmとか出てるご時世に生のJavaScript動かせるって言うのも逆に危険じゃね?
TypeScript動かせますとか、生JavaScriptの型検査出来ますとかでも無ければ、むしろ嫌われ機能じゃ。。。

185:デフォルトの名無しさん
19/03/22 16:19:38.63 lvSXHllC.net
文字通りの布教活動してないで、pycallのメンテでもしてて欲しいんだけど
サナダ虫言語くん

186:デフォルトの名無しさん
19/03/22 18:25:24.02 ZTaR0qbl.net
質問ばかりで申し訳ないのですが、
webkit2からjavascriptを呼んで値を取得するまではできたのですが、
その値を今度は別のjavascriptに渡して
window.scrollto(0, self.js_value),)
とやりたいのですが、どうすればpythonの値(self.js_value)をjavascriptに渡せるのでしょうか?

187:デフォルトの名無しさん
19/03/22 18:29:03.58 KU+gzGwj.net
>>181
閉じかっこの数あってないぞ

188:181
19/03/22 18:49:26.10 ZTaR0qbl.net
>>182
失礼しました。コピペを間違えました。

189:デフォルトの名無しさん
19/03/22 19:59:00.49 p6G8Xbop.net
え?
で直さないの?

190:デフォルトの名無しさん
19/03/23 03:50:03.33 oN2Crbw2.net
import pandas as pd
abc =[["a", 1, 2], ["b", 3, 4], ["a", 5, 6], ["b", 7, 8]]
df = pd.DataFrame(abc)
このデータフレームから、query関数を使って、
aを含む行だけを抽出したいのですが、エラーが出てしまいます。。。
df.query("0=='a'")
どなたかお助けください。

191:172
19/03/23 06:05:42.92 4V4ijAbJ.net
>>181
参考までに、Ruby で、Selenium WebDriver なら、
>>172
に書いたように、execute_script で直接、JavaScript の命令文(文字列)を実行できる
execute_script( 文字列 )
TOPまでスクロール
execute_script('window.scroll(0,1);')
BOTTOMまでスクロール
execute_script('window.scroll(0,10000);')

192:デフォルトの名無しさん
19/03/23 07:43:05.24 ydnViaEq.net
selfにはインスタンスが渡されるといいますが、インスタンスの何が渡されているんですか?selfを出力すると場所ということになりますが、場所にあるデータを渡しているのでしょうか?だとしたらそのデータはなんですか?
selfによってクラス内で変数が共有される仕組みがわからない
URLリンク(codepad.org)
class test():
def __init__(self,var):
self.v= var
def func(self):
print(self.v)
print(self)
print(vars(self))
a = test("aaa")
a.func()

193:デフォルトの名無しさん
19/03/23 08:16:15.40 hJSauuzM.net
>>187
何度も同じ事を質問してるけど、返信のレスの内容やサイトを見たのか

194:デフォルトの名無しさん
19/03/23 08:33:26.98 ZeoqDrwt.net
こういうタイプはアセンブリ言語から順に勉強していった方がいいんじゃないかと思う

195:デフォルトの名無しさん
19/03/23 08:37:15.91 4W6dBUsF.net
Pythonに代わる独自言語を開発したいとかかもしれない

196:デフォルトの名無しさん
19/03/23 09:09:46.45 f3qHSm8q.net
>>186
参考にならないから消え失せろ。二度と来るな。

197:デフォルトの名無しさん
19/03/23 09:42:24.98 ydnViaEq.net
>>188
もちろん見たのですが、どういう形で渡されているかわからないのです
クラス自身が渡されているとしたら
class.class.v = var
という構造になっているということですか?

198:デフォルトの名無しさん
19/03/23 10:26:17.73 ZeoqDrwt.net
>>192
関数はある程度理解してて自分で書くことができる?

199:デフォルトの名無しさん
19/03/23 10:40:50.71 I3Pj7rcK.net
「python クラス変数 インスタンス変数」とかでググれば説明サイトが大量にあるけど、
プログラミングそのものが理解できてない感じだよね

200:デフォルトの名無しさん
19/03/23 10:50:20.39 ydnViaEq.net
>>193
簡単な関数ならもちろんかけます
def func(hikisuu):
print(hikisuu)
func("引数")

201:デフォルトの名無しさん
19/03/23 10:50:59.12 ydnViaEq.net
>>194
概念はなんとなくわかりますが、どういう形で渡されているかがわからないのです

202:デフォルトの名無しさん
19/03/23 10:51:50.16 YnRhMPRR.net
>>194
説明できないの?
馬鹿なの?

203:デフォルトの名無しさん
19/03/23 11:03:23.41 hJSauuzM.net
>>192
selfはtestクラスのインスタンスを指してる
func()の第一引数にそのselfがあるんだから、そのメソッド内でselfのインスタンス変数にアクセス出来るのはなんにもおかしくないと思うんだけど

204:デフォルトの名無しさん
19/03/23 11:10:08.58 ydnViaEq.net
>>198
なんとなくわかってきました
ただ、selfがtestクラスのインスタンスということであれば、testクラスの中にさらにクラスのインスタンスがあるという状態はおかしくないでしょうか?

205:デフォルトの名無しさん
19/03/23 11:17:15.12 0qnTz56h.net
ここ数日これずっとやってるのか
PyConにくる小学生ですらもう少しマシ

206:デフォルトの名無しさん
19/03/23 11:21:18.94 sBAP9hOD.net
>>200
でも完全にスレタイ通りなのだ

207:デフォルトの名無しさん
19/03/23 11:21:59.29 oN2Crbw2.net
>>185です。
どなたかお助けください。。。
本当に困ってます。

208:デフォルトの名無しさん
19/03/23 11:22:14.02 ZeoqDrwt.net
>>195
じゃ仮に変数をまとめて入れられる変数が


209:あるとする(変数の中に変数が入っている) a = {   hensu1 = "ABC"   hensu2 = 22 } b = {   hensu1 = "DEF"   hensu2 = 55 } 変数にアクセスするためにはこうやるとする print(a.hensu1) // ABCが出力される b.hensu2 = 44 // bの中のhensu2に44が入る もう一つ仮に、関数をまとめられる変数があるとする(変数の中に関数が入っている) funcs = {   def func1(hikisu):     print(hikisu.hensu1)      def func2(hikisu, var):     hikisu.hensu2 = var } 中の関数を呼び出すにはこうやるとする funcs.func1(a) // ABCが出力される funcs.func2(b, 87) // b.hensu2 に87が入る



210:デフォルトの名無しさん
19/03/23 11:29:25.52 7srBUnhE.net
>>192
>クラス自身が渡されているとしたら
誰がクラス自身なんて言った
渡されるのはクラス自身じゃない
もう自分でソース読んでみるのもいいんじゃないですかね

211:デフォルトの名無しさん
19/03/23 11:34:13.97 hJSauuzM.net
>>199
"testクラスの中にさらにクラスのインスタンスがあるという状態"という考えはどこから出てくるんや
>>202
エラーを貼ったほうがいい

212:デフォルトの名無しさん
19/03/23 11:34:24.50 7srBUnhE.net
どう実装されていますかっていう質問でしょ
ソース見るのが一番早いよ
C分からなくてソース読めないっていうなら、これ以上の説明も理解できないよ

213:デフォルトの名無しさん
19/03/23 11:41:58.39 VYeUbhBG.net
>>199
引数として渡されているだけなんだから何らおかしくない
> testクラスの中にさらにクラスのインスタンスがあるという状態はおかしくないでしょうか?
自分の中で「こうあるべき」って感情的に決めつけてない?
それの何がどうおかしいのか論理的に説明してみて

214:デフォルトの名無しさん
19/03/23 11:48:53.36 oN2Crbw2.net
>>205
import pandas as pd
abc =[["a", 1, 2], ["b", 3, 4], ["a", 5, 6], ["b", 7, 8]]
df = pd.DataFrame(abc)
df.query("0=='a'")
pandasで上記コードを実行すると
KeyError: False
というエラーが出てしまいます。

215:デフォルトの名無しさん
19/03/23 12:24:51.07 ydnViaEq.net
>>204
渡されるのはインスタンスですよね
クラスの中のselfではなくて、生成されたインスタンスの中にあるselfに渡されているということでしょうか?

216:デフォルトの名無しさん
19/03/23 12:28:48.09 ydnViaEq.net
>>203
ありがとうございます
これは例えばのコードですよね?
この波括弧(コレクション?)を使うとエラーが出るのですが

217:デフォルトの名無しさん
19/03/23 12:33:20.28 jhd39dfA.net
>>209
クラスとインスタンスの違いが分かっていなかったのか
>クラスの中のselfではなくて、生成されたインスタンスの中にあるselfに渡されているということでしょうか?
そう
クラスはあくまで設計図
実体を作って何かを行うのは全てインスタンス

218:デフォルトの名無しさん
19/03/23 12:41:08.01 7srBUnhE.net
クラスにも実体はあるし、クラス内の関数を呼び出したりもするけどね

219:デフォルトの名無しさん
19/03/23 12:43:45.55 jhd39dfA.net
>>212
staticも考えたけど、もう終わらせた方がいいんじゃないかなって

220:デフォルトの名無しさん
19/03/23 13:55:46.82 f3qHSm8q.net
>>212
超初心者にあれこれ詰め込んでも混乱するだけだろうし、多少の嘘は許容してまずは本当に基本的なことを大雑把に理解させないと一歩も先に進まないんじゃないかな。

221:デフォルトの名無しさん
19/03/23 15:46:32.76 A1HHpCkB.net
口だけは立派な先生方
self がなにか説明できない

222:デフォルトの名無しさん
19/03/23 15:55:15.05 VsaUG60l.net
説明はもう済んでるよ、理解出来てないだけ。
それも当然で、基礎知識が無いからどうしようもない
このまま行けばC言語に手を出すことになるのだろう

223:デフォルトの名無しさん
19/03/23 15:59:25.81 hJSauuzM.net
>>209
それでいい
クラスから実体化しまインスタンスはクラスとは別のメモリ領域にある
そのインスタンスの中に、selfというそのインスタンス自身をさすインスタンス変数があるということ
頼むからか>>149の1章から3章まで読んでくれ
あんたの知りたいことがすべて書いてある
そのサイト以上に簡単に説明してるところを俺はしらん(´・ω・`)

224:デフォルトの名無しさん
19/03/23 16:06:51.30 zpuBZ1ay.net
マジで小学校で教えといて欲しい

225:デフォルトの名無しさん
19/03/23 17:31:55.04 ydnViaEq.net
↑ありがとうございます
最後に一つ
self.n= name
とあったらself側が変数名で、nは属性という扱いで�


226:「いんですか?



227:デフォルトの名無しさん
19/03/23 17:35:56.63 oN2Crbw2.net
>>185です。
解決ができそうにないので質問をキャンセルします。
スレを移動します。

228:デフォルトの名無しさん
19/03/23 17:50:28.72 A1HHpCkB.net
>>219
self は道標
n が変数名だ

229:デフォルトの名無しさん
19/03/23 18:15:49.99 ydnViaEq.net
道標とは?
self.nで
インスタンス化されたクラス/その中にある変数n
というフォルダのような構造になっているという意味でしょうか?

230:デフォルトの名無しさん
19/03/23 18:22:35.82 ydnViaEq.net
インスタンスの構造を出力してくれる関数とかないでしょうか?
これがあれば理解できるかも

231:デフォルトの名無しさん
19/03/23 19:16:34.22 iMO+WCpL.net
ppront
pydoc

232:デフォルトの名無しさん
19/03/23 20:15:49.89 abrpiqJH.net
>>185
Python詳しく無いけど、Haskellで言うfilter関数見たいのが有るんじゃ無いのか?
自作しても良いと思うけど。
def filter(f,lst):
newlst = []
for i in lst:
if f(i) then:
newlst.append(i)
return newlst
Haskellとの比較用にしか使ってないから、クラスとか知らんで悪いけど。

233:デフォルトの名無しさん
19/03/23 20:30:07.59 abrpiqJH.net
>>187
>>53で文句言われたpython初心者が別の言語での知見からの推測で良ければ?
selfに入ってるのは__init__付けてない時はclass定義そのもののアドレス(参照)が入るみたい。(各インスタンスで別々の値を持てなかった)
__init__付けるとインスタンスのアドレスが入るみたいね。
クラスによって(インスタンスの)先頭アドレスから何バイト先がメソッドのアドレスとか分かるから(その為のクラス定義)。

234:デフォルトの名無しさん
19/03/23 20:31:20.91 ydnViaEq.net
instance = test("hge")
pprint.pprint(instance)
pprintしてもメモリの場所しか表示されないのですが、何か設定が必要でしょうか

235:デフォルトの名無しさん
19/03/23 20:43:03.84 ydnViaEq.net
もしかしてクラスを設計図としたインスタンス(の構造)には、クラスの宣言部分は含まれていないのですか?
class testclass():
def __init__(self,hoge):
self.h = hoge
def func(self):
print(self.h)
instance = testclass("output")
instance.func()
とあったら、instance部分の構造は
def __init__(self,hoge):
self.h = hoge
def func(self):
print(self.h)
となってるわけですか?

236:デフォルトの名無しさん
19/03/23 20:50:14.72 A1HHpCkB.net
>>222
ご明察のとおり
だから、メモリ空間上に実体として存在するのは、
変数名.n
なので、外部からアクセスするときには、
変数名.n
でアクセスする。
self.n
で朝とできるのは、同じ変数名インスタンス内部からだけという仕掛け

237:デフォルトの名無しさん
19/03/23 20:59:31.58 gtm/8/iL.net
rubyのヘイトが溜まっていく…

238:デフォルトの名無しさん
19/03/23 21:17:04.29 VsaUG60l.net
この子にはもしかしてrubyが似合うんじゃないかなって思っちゃった

239:デフォルトの名無しさん
19/03/23 21:18:50.51 I3Pj7rcK.net
>>228
難しく考えすぎ
self(正確には第1仮引数名).変数名があると、下記の順番で処理されるだけ
1. インスタンス変数が定義されていれば、それにアクセス
2. クラス変数が定義されていれば、それにアクセス
3. どちらも無ければインスタンス変数を作成 (参照だったら例外発生)
Pythonインタープリタは、そう実装されているってだけ
だから概念とか考えてもしょうがない
はっきり言って、「selfに意味はない」

240:デフォルトの名無しさん
19/03/23 21:21:25.01 lUpPBvQP.net
>>227-228
どーでもよくないことだが
またインデント崩壊してるわ
タイポが散見されるわで
どうにもはや
pprontはpprintじゃないとおもうぞ

241:デフォルトの名無しさん
19/03/23 21:22:53.90 lUpPBvQP.net
>>232が すごくイイ!!(・∀・)こといった
selfをselfとかいとくことに
意味がないところでつっかかってんだ、
self野郎くんは

242:デフォルトの名無しさん
19/03/23 21:30:04.14 CpiI5eIt.net
【人類は一つです(バカウヨ除外)】  世堺教師マiトレーヤ  【ユダヤから富を奪還し分ち合おう】
スレリンク(liveplus板)

243:デフォルトの名無しさん
19/03/23 22:04:22.60 abrpiqJH.net
>>232
selfはローカル変数かフィールド(クラス変数)かを見分けると言う意味はある。
メソッドの引数にする意味はないと思うけど。(他の引数と一貫性を保つ為?)
class Myclass:
def func(str):
name = str #nameはローカル変数かフィールドか見分けられない。
そこでrubyは@nameとし、pythonはself.nameにした。

静的型言語だとクラス定義の時点でメソッドよりフィールドを先に定義するから、クラスで何個のフィールドが有るのか分かるけど、
動的型言語だと全メソッド見ないとフィールドが何個あるのか把握出来ない。
同じ使われ方してるフィールドが複数あっても気付きにくい。
__init__にフィールドの宣言と初期化を集約するとか、セオリー頼り。
class Myclass:
def func1(self,str):
self.name = str
def func2(self,str):
self.myname = str

244:デフォルトの名無しさん
19/03/24 00:18:34.34 9O9Vp0iS.net
>>236
>メソッドの引数にする意味はないと思うけど。(他の引数と一貫性を保つ為?)

それな
開発者は、次回には直しとけよ

245:デフォルトの名無しさん
19/03/24 00:26:51.70 aL5blMH8.net
>>236>>237
開発者からの言葉
・self不要論は死ぬほど聞いている
・以下が大きい理由
'foo'が 'C'のインスタンスであることを考えると、
パラメータリストで明示的な 'self'を必要とすることは、メソッドを呼び出すこれら2つの方法の間の理論的等価性を強化することになります。
foo.meth(arg)== C.meth(foo、arg)
俺には分からんかった
以下ソース
URLリンク(neopythonic.blogspot.com)
URLリンク(coreblog.org)

246:デフォルトの名無しさん
19/03/24 00:52:27.28 9O9Vp0iS.net
バカな開発者だ
C なんてどうでもいいだろうが

247:デフォルトの名無しさん
19/03/24 00:54:37.72 aL5blMH8.net
>>239
pythonはCのラッパーなんだけど

248:デフォルトの名無しさん
19/03/24 02:14:23.76 zpFoB+Fk.net
Yo! yo! みんな喧嘩すんなYO!

249:デフォルトの名無しさん
19/03/24 02:59:34.53 byiyxNX1.net
レペゼンpython、yeah

250:デフォルトの名無しさん
19/03/24 05:01:07.62 XxZqoAge.net
>>237
いあ、個人的にはメソッドの引数からフィールドを生成または使用してるのが分かって便利だから残してて欲しいが。

251:デフォルトの名無しさん
19/03/24 05:39:07.49 NAaHZN6A.net
pythonのC-APIは
CallObjectとか
CallFuncとか
CallMethodとか
使い分けてるよな

252:デフォルトの名無しさん
19/03/24 08:33:50.69 XvYqXbWf.net
dive into python3を読んでIterator作ってみたら少し理解が進んだ気がする
dive into python3を何とか理解したレベルで次に読むべきものって何なんやろ

253:デフォルトの名無しさん
19/03/24 09:23:31.67 1qlluyio.net
つくれ

254:デフォルトの名無しさん
19/03/24 09:28:16.68 IeawwFp1.net
Fluent Python

255:デフォルトの名無しさん
19/03/24 10:49:21.59 0uhW8miJ.net
anacondaで個別に環境作ってsqlite3入れたがそれらを個別にイジるにはどうすればいい?コマンドプロンプトでsqlite3と叩いても違うバージョンのsqlite3が表示される

256:デフォルトの名無しさん
19/03/24 10:51:56.82 lF8x/C3u.net
activateでsqliteを入れた環境に切り替


257:える



258:デフォルトの名無しさん
19/03/24 11:22:47.21 0uhW8miJ.net
>>249
ありがとうできた
PowerShellでactivate出来なかったから調べてみると使えるようにするにはconda install -n root -c pscondaenvs pscondaenvsで使えるように出来た

259:デフォルトの名無しさん
19/03/24 11:37:43.08 0uhW8miJ.net
ごめんvscodeのmicrosoft.python.languagesserver.exeってのが13gbくらいメモリ食っててメモリ使用率とディスクが99%なんだけどこれウィルス?

260:デフォルトの名無しさん
19/03/24 11:55:24.22 0uhW8miJ.net
解決したっぽい

261:デフォルトの名無しさん
19/03/24 12:04:20.29 byELi1J1.net
1人みたら100人いるとの格言の通り
self概念を理解できない人間はそれくらいいる
pythonに限らず他の言語でも

262:デフォルトの名無しさん
19/03/24 12:45:59.87 6XL2+Wvk.net
実装がどうなってようが俺の要求する通りの出力結果が得られれば
細かいことはどうでもいい

263:デフォルトの名無しさん
19/03/24 12:50:28.94 aL5blMH8.net
>>254
疑問点をブラックボックスに閉じ込める事も大事だよね
考えていたらキリがない

264:デフォルトの名無しさん
19/03/24 12:51:31.88 XnubZNlX.net
//なんかわかんないけど動いた

265:デフォルトの名無しさん
19/03/24 12:54:55.93 aL5blMH8.net
それはちょっと違う

266:デフォルトの名無しさん
19/03/24 14:19:15.63 m/EdUsLf.net
.sort()がマージソートだろうがクイックソートだろうが気にしないって事やろ

267:デフォルトの名無しさん
19/03/24 14:51:12.18 9O9Vp0iS.net
そうそうそーとしてくれりゃいいのよ
アルゴの違いなんて、CPU命令セットの違いで成績は簡単に逆転しちゃうんだから

268:デフォルトの名無しさん
19/03/24 15:03:55.28 aL5blMH8.net
>>258
そうそう
それで速度が足りないとか不具合起きるとかアリえんし、例え速度に多少問題あってもそんなもん改善しない

269:デフォルトの名無しさん
19/03/24 16:24:16.54 w1PFw/Sy.net
webkit2+gtk3でimport threadingで子プロセスからwebkit2.webview.run_javascriptでjavascriptを呼ぶと下記のようなエラーが出てしまうのですが、
仕様なんでしょうか?
1 0x7f4853d050f9 /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x9) [0x7f4853d050f9]
2 0x7f4860cdfeda /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37(+0x792eda) [0x7f4860cdfeda]
3 0x7f4860cbc8a4 /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37(+0x76f8a4) [0x7f4860cbc8a4]
4 0x7f4860d68cf3 /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37(webkit_web_view_run_javascript+0xc3) [0x7f4860d68cf3]

270:デフォルトの名無しさん
19/03/24 16:27:03.66 w1PFw/Sy.net
multiprocessingだと、javascriptだけ読み込まれないようです。(printや他の関数呼び出しなどは機能します)
これだと常時子プロセスでページのスクロール位置を記録するスクリプトが組めないので困っています。
どなたか原因がわかる方、お助けください。

271:デフォルトの名無しさん
19/03/24 16:34:22.71 C+SYacul.net
>>262
なんでマルチプロセスしてるかわかんないけど
一旦全部のプロセスの足並みそろうまで待つ命令入れたらどうなるのん

272:262
19/03/24 16:59:44.36 w1PFw/Sy.net
>>263
レスありがとうございます。
本来はアプリ終了時にページの既読位置を記録したかったので、gtk windowのdestroy
シグナルからjavascriptを書いたコールバック関数を呼ぼうと思ったのですが、
gtk windowがdestroyされるとwebviewも消えてしまって、値が取得できなかったので、
常時スクロール位置を記録する無限ループを作り、その中でjavascriptを呼ぶ子プロセスを作ろうと思ったのです。
マルチプロセスにせずクラスのdef __init__()にループの関数を書くと無限ループなのでwebviewが読み込まれず、
仕方がなくマルチプロセスにしました。子プロセスから親プロセスの変数を書き換えられないなどの基本的なことは
検索してわかったのですが、なぜ子プロセスから親プロセスのdefに書いてあるjavascriptを呼べないかがわからんのです。
普通の関数なら呼べ�


273:驍謔、ですが。



274:デフォルトの名無しさん
19/03/24 17:47:09.22 C+SYacul.net
>>264
よべないものは呼べないんだろうから
なんか別の攻略法を考えるしかなさそうだなそれ。。。
スクロール位置の記録は
パイプに書いてるの?
その他の方法でやってる?

275:262
19/03/24 17:59:04.80 w1PFw/Sy.net
>>265
スクロール位置の記録はjavascript(y_pos_js ="var y; y = window.scrollY;")
とそれのresultを保管する変数でやっています。
変数の共有は
from multiprocessing import Value
のshared_double = Value('d', 0.0)などとやっています。

276:デフォルトの名無しさん
19/03/24 18:04:17.78 C+SYacul.net
りかい
それでうまくいかないんだ。。。

277:デフォルトの名無しさん
19/03/24 18:17:51.34 TV2Tiiuq.net
self野郎です
とりあえずありがとうございます

278:デフォルトの名無しさん
19/03/24 18:29:35.04 TV2Tiiuq.net
>>232
クラス変数にselfは使えないですよね?

279:デフォルトの名無しさん
19/03/24 18:32:34.26 TV2Tiiuq.net
self.nはだたのurlと考えることにしました
URLリンク(self)

280:デフォルトの名無しさん
19/03/24 19:00:06.76 C+SYacul.net
>>267
誤解を招く表現を訂正
それでもうまくいかないんだ。。。。。 (´・ω・`)

281:デフォルトの名無しさん
19/03/24 20:26:00.05 TV2Tiiuq.net
要はselfに自分自身を入れると、class.nみたいな感じで変数だとかにアクセス出来るってだけのことじゃないですか

282:262
19/03/24 20:36:20.90 w1PFw/Sy.net
>>267
Process(target=self.js_run(y_pos_js))
としたら今度はスクリプトを読み込んでくれました。
別プロセスにしたのが原因ではないようです。
もうちょっと考えてみます。レスありがとうございました。

283:デフォルトの名無しさん
19/03/24 20:48:22.92 C+8PS15Z.net
>>272
そこにきづくとはやはりてんさいか

284:デフォルトの名無しさん
19/03/24 21:04:17.61 C+SYacul.net
>>273
うまくいってなにより
ちからになれなくてすまん

285:デフォルトの名無しさん
19/03/24 21:15:19.44 Pci4stVg.net
>>272
もう完璧やん

286:デフォルトの名無しさん
19/03/24 21:45:14.19 aL5blMH8.net
>>272
100点!

287:232
19/03/24 21:45:45.89 LjSh6l07.net
>>269
だから>>232の通りなんだから、クラス変数にアクセスできるってば
>>238みたいな事を言っておいて、あんまりな仕様
そういうわけで、クラスメソッドの第1仮引数は"self"じゃなくて慣例的に"cls"にする
実際は"self"にしちゃう人もいるけど
Python3にする時にxrange→rangeとかつまらん事を病的なまで変更しておいて、
肝心な事は何も手を付けなかったから、いろいろ言われているんだよね
素直に"self"と"cls"を予約後にして、それぞれインスタンスとクラスを指すべきだったのに
あ、でもせっかく納得したみたいだから、別に気にしなくてもいいよ

288:デフォルトの名無しさん
19/03/24 23:12:03.48 3fqiTHWE.net
>>236
Python, JavaScript は、クロージャが関数スコープだから、
スコープ外の変数を取り込んでしまう。
第1級関数の欠点
一方、Ruby は、C と同じ。
関数スコープの内側に、クロージャのブロックスコープがある
関数は外側の変数を取り込まないで、
ブロックスコープは、関数内の変数を通す
第1級関数にしなかったことで、スコープが強固!
だから、this がwindow を指したり、non local とか、ややこしい問題がない
第1級関数を使っている言語は、バグりやすい

289:デフォルトの名無しさん
19/03/24 23:18:14.51 9O9Vp0iS.net
>>272
引数に self と書く必然性は?

290:デフォルトの名無しさん
19/03/24 23:19:28.32 9O9Vp0iS.net
>>232
>Pythonインタープリタは、そう実装されているってだけ

先ずはその仕様を変更しろ

291:デフォルトの名無しさん
19/03/25 00:04:18.17 3q1td1jR.net
クロージャって何がいいの?
スレリンク(tech板:261番)
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が
> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。
と語っているね

URLリンク(www.atmarkit.co.jp)

292:デフォルトの名無しさん
19/03/25 00:11:34.45 Cuu19DCp.net
>>280
>>238でpython設計者が語っている。正直良くわからん
>>281
開発者に良いなよ。普通に意見出来る場があるぞ?
ここで言っても何も変わらないよ?
URLリンク(neopythonic.blogspot.com)
URLリンク(neopythonic.blogspot.com)

293:デフォルトの名無しさん
19/03/25 00:49:10.28 gQLXATRQ.net
このサイトに書いてあるsqlalchemyの使い方について教えて欲しいんだけど
user = User('hoge')

db.create_all()
の所について誰か分かる?
sqlalchemyは全くの初心者
とりあえず自分でsqliteのdbとテーブルを手動で作ってから始めるのかな?
URLリンク(www.smartbowwow.com)

294:デフォルトの名無しさん
19/03/25 01:26:03.22 25q5twYk.net
>>237
> >>236
> >メソッドの引数にする意味はないと思うけど。(他の引数と一貫性を保つ為?)
>
>
>
> それな
> 開発者は、次回には直しとけよ
>>243
> >>237
> いあ、個人的にはメソッドの引数からフィールドを生成または使用してるのが分かって便利だから残してて欲しいが。

295:デフォルトの名無しさん
19/03/25 01:35:57.61 NiC3aEm8.net
個人的な意見を言われてもねえw

296:デフォルトの名無しさん
19/03/25 03:12:34.36 SOhENsRU.net
>>279
Cにはクロージャの概念は無いよ。
毎度毎度、rubyしか分からない(それすらちゃんと分かってるか怪しい)のに他の言語のスレにわざわざ出てきて無理矢理ruby推ししては、頓珍漢なことしか言えないのだから二度と書き込むな。

297:デフォルトの名無しさん
19/03/25 03:52:06.06 VCx1LmIq.net
C言語でクロージャを実装すると
URLリンク(pineapple.blog)
struct make_plus_n_context_t {
int _n;
int (*_func)(const struct make_plus_n_context_t *, int);
};
typedef struct make_plus_n_context_t MAKE_PLUS_N_CONTEXT_T;


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch