当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合★は、
表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。
Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その55
https://mevius.5ch.net/test/read.cgi/tech/1633070807/
次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
探検
【まず1嫁】くだすれPython(超初心者用) その56
■ このスレッドは過去ログ倉庫に格納されています
2021/12/27(月) 01:38:10.93ID:GepmXCuJ
2021/12/27(月) 16:38:48.09ID:5EmWEway
>>1
スレたて乙です。
すみません。前のスレの最後の方に質問させていただいたものです。
前のスレに続いて相談させて下さい。
私のやりたいことは、抽象的な説明になりますが、webからとある情報を取得してきて、それらを色々と解析することです。
その為、以下の構成を考えています。
- webから情報を取得して、オブジェクトにして返すライブラリ(1個)
- 上記のライブラリを利用して情報を取得し、解析を行い結果を表示するコマンドラインのアプリ(複数個を予定)
その為、ディレクトリ構成は以下を考えています。
- weblib(Webから情報を取得して、オブジェクトにして返すライブラリ)
-- weblib
--- web_accessor.py
--- data_type.py
-- tests
--- test_web_accessor.py
--- test_data_type.py
- commandline1(コマンドラインのアプリ)
- commandline2(コマンドラインのアプリ)
上記のcommandline1,2の内部の構成をどうすべきかよくわかりません。
また、前のスレでコメントいただいておりましたが、自作のライブラリの参照方法も何がベストなのかわかっておりません。
よろしくお願いいたします。
スレたて乙です。
すみません。前のスレの最後の方に質問させていただいたものです。
前のスレに続いて相談させて下さい。
私のやりたいことは、抽象的な説明になりますが、webからとある情報を取得してきて、それらを色々と解析することです。
その為、以下の構成を考えています。
- webから情報を取得して、オブジェクトにして返すライブラリ(1個)
- 上記のライブラリを利用して情報を取得し、解析を行い結果を表示するコマンドラインのアプリ(複数個を予定)
その為、ディレクトリ構成は以下を考えています。
- weblib(Webから情報を取得して、オブジェクトにして返すライブラリ)
-- weblib
--- web_accessor.py
--- data_type.py
-- tests
--- test_web_accessor.py
--- test_data_type.py
- commandline1(コマンドラインのアプリ)
- commandline2(コマンドラインのアプリ)
上記のcommandline1,2の内部の構成をどうすべきかよくわかりません。
また、前のスレでコメントいただいておりましたが、自作のライブラリの参照方法も何がベストなのかわかっておりません。
よろしくお願いいたします。
2021/12/27(月) 17:01:38.22ID:3oj0wwuR
weblib/__main__.py
weblib/commands/command1.py
weblib/commands/command2.py
weblib/web_accessor.py
weblib/data_type.py
とかやる
DjangoやScrapyのような大御所フレームワークでプロジェクトを作ると概ねこのようね構成になる
command1やcommand2はサブコマンドとして定義する
weblib/commands/command1.py
weblib/commands/command2.py
weblib/web_accessor.py
weblib/data_type.py
とかやる
DjangoやScrapyのような大御所フレームワークでプロジェクトを作ると概ねこのようね構成になる
command1やcommand2はサブコマンドとして定義する
4デフォルトの名無しさん
2021/12/27(月) 17:08:01.54ID:RQJfeX+1 git cloneしてきて、pip install -e .できるようにパッケージ化するのかいいよ
そうすれば、普通にimportするだけで使える
そうすれば、普通にimportするだけで使える
5デフォルトの名無しさん
2021/12/27(月) 17:09:15.95ID:RQJfeX+1 結局はデプロイ方法の話だよね?違う?
2021/12/27(月) 17:37:15.70ID:5EmWEway
>>3
なるほど。
コマンドラインアプリ程度ならば、ライブラリと一体化させ、複数の命令があっても、サブコマンドとして実装するのが正解かも知れませんね。
>>4
すみません。個人で使いたいだけのライブラリもpip等を意識すべきでしょうか?
3rdパーティーのライブラリを使うのにpipは非常に便利なのですが、自作するとなると勉強が必要そうに感じました。
>>5
すみません。私はおそらくpythonでのデプロイの意味が理解出来てないです。
個人でのみ利用するライブラリとアプリケーションを作成する場合のソースコードの構成が知りたいです。
アプリケーションがコマンドライン程度の場合、>>3さんの提案が良い様な気もしていますが、いかがでしょうか?
なるほど。
コマンドラインアプリ程度ならば、ライブラリと一体化させ、複数の命令があっても、サブコマンドとして実装するのが正解かも知れませんね。
>>4
すみません。個人で使いたいだけのライブラリもpip等を意識すべきでしょうか?
3rdパーティーのライブラリを使うのにpipは非常に便利なのですが、自作するとなると勉強が必要そうに感じました。
>>5
すみません。私はおそらくpythonでのデプロイの意味が理解出来てないです。
個人でのみ利用するライブラリとアプリケーションを作成する場合のソースコードの構成が知りたいです。
アプリケーションがコマンドライン程度の場合、>>3さんの提案が良い様な気もしていますが、いかがでしょうか?
2021/12/27(月) 18:34:46.34ID:mNLCsv7t
1.command1を実装するためにweblibで不足を補ったり編集作業をしてcommand1完成
2.command2を実装するためにweblibで不足を補ったり編集作業をしてcommand2完成
3.command1と2完成したはずなのにcommand1が動かない。その原因は2のweblib編集作業
4.command1が動くように修正したら今度はcommand2が不具合抱える
(以下無限ループ)
なんて初心者が陥りがちな罠あるからなw
ライブラリ化やパッケージ化できたらいいし、そうやるのが理想だけど
フォルダ構成の勉強したいとかじゃなく動くものを作りたいだけなら何も考えずに必要なファイルをコピーコピーで二重、三重に抱えるのも手だよ
2.command2を実装するためにweblibで不足を補ったり編集作業をしてcommand2完成
3.command1と2完成したはずなのにcommand1が動かない。その原因は2のweblib編集作業
4.command1が動くように修正したら今度はcommand2が不具合抱える
(以下無限ループ)
なんて初心者が陥りがちな罠あるからなw
ライブラリ化やパッケージ化できたらいいし、そうやるのが理想だけど
フォルダ構成の勉強したいとかじゃなく動くものを作りたいだけなら何も考えずに必要なファイルをコピーコピーで二重、三重に抱えるのも手だよ
8デフォルトの名無しさん
2021/12/27(月) 19:34:55.86ID:bZjwTURQ >>6
知ってるとは思うけど、pipはローカルに落としてきたファイルにも使える
そうすれば、そういうことで悩む必要はなくなる
絶対そうするべきとまではいうつもりもないし、あくまで選択肢の一つとして挙げただけだよ
知ってるとは思うけど、pipはローカルに落としてきたファイルにも使える
そうすれば、そういうことで悩む必要はなくなる
絶対そうするべきとまではいうつもりもないし、あくまで選択肢の一つとして挙げただけだよ
98
2021/12/27(月) 19:37:59.09ID:bZjwTURQ ローカルにというかPiPIを介さずにと言いたかった
2021/12/30(木) 23:48:26.78ID:1PjrU/kY
>>7-9
アドバイスありがとうございます。
色々と教えていただいたのですが、結局動作させることを優先してモジュールやパッケージは無視して、実装してしまいました。
空行も含めて1万行ちょっとですが、ファイルは3個のみで、全部同じディレクトリにあります。
__init__.pyや__main__.pyは作らず、ソースコードを直接叩いています。
いまいち、パッケージっぽく作成した場合のimportの動作がよくわからないので、おいおい勉強していきます。
何かこのあたりのpythonの常道を学べるものがあれば教えて下さい。
とりあえず、仕事が暇になったら、Effective Pythonでも買おうかと思ってます。(私は若い頃にEffective Javaを読んで感動したので)
アドバイスありがとうございます。
色々と教えていただいたのですが、結局動作させることを優先してモジュールやパッケージは無視して、実装してしまいました。
空行も含めて1万行ちょっとですが、ファイルは3個のみで、全部同じディレクトリにあります。
__init__.pyや__main__.pyは作らず、ソースコードを直接叩いています。
いまいち、パッケージっぽく作成した場合のimportの動作がよくわからないので、おいおい勉強していきます。
何かこのあたりのpythonの常道を学べるものがあれば教えて下さい。
とりあえず、仕事が暇になったら、Effective Pythonでも買おうかと思ってます。(私は若い頃にEffective Javaを読んで感動したので)
11デフォルトの名無しさん
2021/12/31(金) 22:28:10.79ID:c0ALKO7s >>10
ここ
https://packaging.python.org/en/latest/tutorials/packaging-projects/
参考にしてる本とかサイトとかで紹介されてる方法と違ったりする時はパッケージ構成だけでもこっちに合わせてやった方がいいと思う
ここ
https://packaging.python.org/en/latest/tutorials/packaging-projects/
参考にしてる本とかサイトとかで紹介されてる方法と違ったりする時はパッケージ構成だけでもこっちに合わせてやった方がいいと思う
12デフォルトの名無しさん
2022/01/01(土) 06:43:12.13ID:96//zQri > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
13デフォルトの名無しさん
2022/01/01(土) 11:46:28.70ID:p7FpLgzA RPGを作ります
モンスターのクラスを100匹ぶん設定します
それぞれ50-100行です
モジュール分割は1モンスターごとか
monsters.pyにベタ書きか
種族や出現場所など、何らかのグループ単位か
どれでもいいとは思うんですが、良し悪しの経験談をお聞きしたい
モンスターのクラスを100匹ぶん設定します
それぞれ50-100行です
モジュール分割は1モンスターごとか
monsters.pyにベタ書きか
種族や出現場所など、何らかのグループ単位か
どれでもいいとは思うんですが、良し悪しの経験談をお聞きしたい
2022/01/01(土) 11:52:14.80ID:hoyIdEI/
2022/01/01(土) 12:18:25.91ID:uo0q0ouM
>>13
モンスターパッケージの下に
なんらかのグループ単位でサブパッケージ
サブパッケージの下にモンスター単位のモジュール
管理しやすいようにするのが目的だから
1モジュールにベタ書きでも管理しやすいと思えばそれでもいい
変更・入れ替え・追加の単位で考えるのが基本
あとグループ化は排他的な分類じゃないと破綻するので
将来を見据えても種族や出現場所が1モンスターにつき1つに必ず決まるかどうかの考慮が必要
モンスターパッケージの下に
なんらかのグループ単位でサブパッケージ
サブパッケージの下にモンスター単位のモジュール
管理しやすいようにするのが目的だから
1モジュールにベタ書きでも管理しやすいと思えばそれでもいい
変更・入れ替え・追加の単位で考えるのが基本
あとグループ化は排他的な分類じゃないと破綻するので
将来を見据えても種族や出現場所が1モンスターにつき1つに必ず決まるかどうかの考慮が必要
2022/01/01(土) 13:24:06.66ID:Je/lt7i4
モンスターの種類ごとにclassを作る
ただそうするとclassの種類が増えて面倒になるから、どのモンスターも全部同じinterface派生にしておく
そうすると地図モジュールではそのinterface一種類を処理できるようにするだけで、全モンスターを処理できるようになる
さらに宝箱は移動しないモノという扱いで同じinterfaceにしておいたり
奇襲エリアやpopエリアなんかも透明なモノとして同じinterfaceにしておくと、モンスターに限らず地図上にあるものすべて同じ規格で簡単に処理できるようになる
ただそうするとclassの種類が増えて面倒になるから、どのモンスターも全部同じinterface派生にしておく
そうすると地図モジュールではそのinterface一種類を処理できるようにするだけで、全モンスターを処理できるようになる
さらに宝箱は移動しないモノという扱いで同じinterfaceにしておいたり
奇襲エリアやpopエリアなんかも透明なモノとして同じinterfaceにしておくと、モンスターに限らず地図上にあるものすべて同じ規格で簡単に処理できるようになる
17デフォルトの名無しさん
2022/01/01(土) 13:49:47.45ID:p7FpLgzA >>15-16
なるほど。勉強になります
なるほど。勉強になります
18デフォルトの名無しさん
2022/01/01(土) 18:02:52.86ID:CvAU7HCi ただしそのinterfaceを適当に設計するとあとで地獄を見る
2022/01/01(土) 18:26:10.69ID:n4zdCVCH
例えば、ドラゴンゾンビが、
ドラゴンクラス・ゾンビクラスのどちらから派生すべきか、設計が難しい
ドラゴン種族で、ゾンビ属性を持つ?
または、ゾンビインターフェイスなのかな?
ドラゴンクラス・ゾンビクラスのどちらから派生すべきか、設計が難しい
ドラゴン種族で、ゾンビ属性を持つ?
または、ゾンビインターフェイスなのかな?
20デフォルトの名無しさん
2022/01/01(土) 20:13:57.80ID:KzNGE8bI 未来を見通すことなんてできないんだから、インターフェースという考え方自体が無理筋かもしれない。
2022/01/01(土) 21:40:29.96ID:Mdgn9Um5
何回もリファクタしたらいいんよ
22デフォルトの名無しさん
2022/01/01(土) 23:04:32.24ID:gODAdL3c 基底クラスと種族クラスを受けた個別モンスタークラスのモジュールが100個
monsterデータベースにそれらがimportしてあって
monster.pop(_id)とかdrop(_id)とかできる
みたいなことなのかな
monsterデータベースにそれらがimportしてあって
monster.pop(_id)とかdrop(_id)とかできる
みたいなことなのかな
2319
2022/01/01(土) 23:30:19.09ID:n4zdCVCH 例えば、ドラゴンゾンビには、
ドラゴン種族から継承した、ブレス攻撃がある
一方、ゾンビ種族から継承した、臭い息攻撃もある
こういう場合に、多重継承が無いから困る
だから、ドラゴン種族を継承(is-a)して、
ゾンビ種族をインターフェイス(has-a)にするとかしないと作れない
言語に多重継承が無いから、思っているような攻撃が作れない
ドラゴン種族から継承した、ブレス攻撃がある
一方、ゾンビ種族から継承した、臭い息攻撃もある
こういう場合に、多重継承が無いから困る
だから、ドラゴン種族を継承(is-a)して、
ゾンビ種族をインターフェイス(has-a)にするとかしないと作れない
言語に多重継承が無いから、思っているような攻撃が作れない
2022/01/01(土) 23:56:38.32ID:gKSwaXD0
>多重継承が無い
え…
使わないに越したことはないけどな
え…
使わないに越したことはないけどな
2022/01/02(日) 02:44:24.58ID:6S/y40F7
https://docs.python.org/ja/3/library/abc.html
後付の抽象基底クラス(ABC)という仕組みがあって
それの仮想的サブクラスをつかえば多重継承ぽいことができる
具象クラスで直接多重継承はしないのでその分冗長だけど見通し悪くはなりにくい
後付の抽象基底クラス(ABC)という仕組みがあって
それの仮想的サブクラスをつかえば多重継承ぽいことができる
具象クラスで直接多重継承はしないのでその分冗長だけど見通し悪くはなりにくい
2022/01/02(日) 13:59:15.78ID:7TGqBUEp
>>23
普通はモンスター has a 攻撃タイプ(複数でも可)にする
設計がおかしい
てかゲームのモンスターの種別を継承で作るとか、割と悪手な気がするけどな。
ゲームバランスの調整が難しくなるし、メリットがなまりない。
業務システムのように、先にそれなりに決まった仕様があって作るものではないのだから細かいところまで共通化はしない方がいいと思うけどなあ。
普通はモンスター has a 攻撃タイプ(複数でも可)にする
設計がおかしい
てかゲームのモンスターの種別を継承で作るとか、割と悪手な気がするけどな。
ゲームバランスの調整が難しくなるし、メリットがなまりない。
業務システムのように、先にそれなりに決まった仕様があって作るものではないのだから細かいところまで共通化はしない方がいいと思うけどなあ。
2719
2022/01/03(月) 06:15:56.77ID:BdaWP45p 確かに、継承よりも、has-a の方が柔軟
ただ、遺伝するものだから継承の方が、イメージしやすい
ただ、遺伝するものだから継承の方が、イメージしやすい
2022/01/03(月) 10:56:31.00ID:k+5SldWu
おじさん種族も「臭い息」を has-a 出来る
2022/01/03(月) 17:24:11.26ID:paNo/4Zy
>>27
二つの種族の遺伝子が混ざり合ったキメラをis-aで考えることの方がおかしいと思うな。
大体遺伝子はタンパク質を発現させるコードであってタンパク質そのものの機能を直接記述している訳ではないのだから、
機能の直接記述を行うプログラミングの継承の概念と結びつけた方がイメージしやすいというのは不適切なのでは?
まだメタプログラミングなどの領域で言及するなら議論の価値があるのかもしれないが。
二つの種族の遺伝子が混ざり合ったキメラをis-aで考えることの方がおかしいと思うな。
大体遺伝子はタンパク質を発現させるコードであってタンパク質そのものの機能を直接記述している訳ではないのだから、
機能の直接記述を行うプログラミングの継承の概念と結びつけた方がイメージしやすいというのは不適切なのでは?
まだメタプログラミングなどの領域で言及するなら議論の価値があるのかもしれないが。
30デフォルトの名無しさん
2022/01/04(火) 16:57:48.92ID:Gsj/g84L 1次関数の計算はnp.polyfitでできると検索しててわかったんですが、
例えば以下のようにx、yの傾きに変化がないxy座標であれば正しい計算結果がでます
x_co=[-1,10]
y_co=[-3,20]
a,b=np.polyfit(x_co,y_co,1)
x = -1
y = a*x+b
print(y)
この計算結果は-3です
ただ以下のように傾きが変化する座標に変更すると正しい計算結果がでません
x_co=[-1,0,10]
y_co=[-3,0,20]
これだとxが-1から0までのaは3で、0から10までのaは2ですよね。
間に0を挟んでいますけどx,yのデフォルトの数値は0としたいのでそうしたんですが
aが変化する場合にnp.polyfit以外で正しい計算結果がだせる方法ってないですかね?
座標の指定を
x_co=[0,10]
y_co=[0,20]
と
x_co=[-1,0]
y_co=[-3,0]
2つ別々に計算してやればうまくいきますがスクリプトが長くなってしまいます
そもそも座標にx 0 y 0がありbが0になるような比例式になってるんで
一次関数で処理すること自体がおかしいのかもしれないですが
例えば以下のようにx、yの傾きに変化がないxy座標であれば正しい計算結果がでます
x_co=[-1,10]
y_co=[-3,20]
a,b=np.polyfit(x_co,y_co,1)
x = -1
y = a*x+b
print(y)
この計算結果は-3です
ただ以下のように傾きが変化する座標に変更すると正しい計算結果がでません
x_co=[-1,0,10]
y_co=[-3,0,20]
これだとxが-1から0までのaは3で、0から10までのaは2ですよね。
間に0を挟んでいますけどx,yのデフォルトの数値は0としたいのでそうしたんですが
aが変化する場合にnp.polyfit以外で正しい計算結果がだせる方法ってないですかね?
座標の指定を
x_co=[0,10]
y_co=[0,20]
と
x_co=[-1,0]
y_co=[-3,0]
2つ別々に計算してやればうまくいきますがスクリプトが長くなってしまいます
そもそも座標にx 0 y 0がありbが0になるような比例式になってるんで
一次関数で処理すること自体がおかしいのかもしれないですが
3119
2022/01/04(火) 17:32:33.14ID:vw+5Ecnq 例えば、ゾンビでもないおじさん種族が、ゾンビ種族の臭い息を使うと、何でも有りになる。
継承種族でもないのに、その技が使えたら、興ざめする。
現実性が無さすぎる
おじさんが、キノコ種族でもないのに、幻惑を使えるとか
ある遺伝子から作られた種族が、ある特殊な技を使える方が、現実的
継承種族でもないのに、その技が使えたら、興ざめする。
現実性が無さすぎる
おじさんが、キノコ種族でもないのに、幻惑を使えるとか
ある遺伝子から作られた種族が、ある特殊な技を使える方が、現実的
32デフォルトの名無しさん
2022/01/04(火) 17:51:12.51ID:4V7DoHkq2022/01/04(火) 18:39:40.45ID:/u8cVvVZ
2022/01/04(火) 22:22:14.46ID:Gsj/g84L
2022/01/04(火) 23:13:45.44ID:IER2ZZly
最小二乗法
2022/01/04(火) 23:46:52.83ID:l7pw94h+
37デフォルトの名無しさん
2022/01/05(水) 00:25:58.93ID:mIcC+Z88■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 【硬貨】500円だと思ったら「500ウォンが入っていた」価値は約10分の1 全国で飲食店などで“500ウォントラブル”相次いで報告 [ぐれ★]
- 【画像有り】ヘイトスピーチ系ネトウヨYouTuberのへずまりゅう、駐車中に大阪府警に職質される [718678614]
- 『ネット右翼になった父』って本を読んだが
- スーパー銭湯でチンコ丸出しの奴頭おかしいのか
- AVって儲かるらしいけどすごくない?
- 【神奈川新聞】「暇空茜」を県警追送検 [746833765]
- ハムエッグ派VSベーコンエッグ派
