[過去ログ] 【まず1嫁】くだすれPython(超初心者用) その59 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
255
(1): デフォルトの名無しさん [sage] 2023/11/29(水) 13:46:04.06 ID:Z6GycUPt(2/2) AAS
>>254
254(2): デフォルトの名無しさん [] 2023/11/29(水) 04:29:33.80 ID:Z6GycUPt(1/2) AAS
勉強のためにとあるWebページのRPA用のフレームワークを自作しようとしてるんですが
ページを操作するクラスをStateパターンの見よう見まねで実装しようとしたところ
画面を遷移させる部分で循環インポートになってしまいます
できればmain.pyからの使い方は変えずに実装したいのですがどうすればよいですか?

操作内容は画面の状態によって異なるのでオーバーライドは無理な状況です
メソッド内でimportすれば解決するような情報もありますが
できればimportはソースコードの最上部で済ませたいです
コードは以下の通りです

main.py
外部リンク:techiedelight.com

rpa.py
外部リンク:techiedelight.com

presentation/__init__.py
外部リンク:techiedelight.com

presentation/presentation_base.py
外部リンク:techiedelight.com

presentation/a_presentation.py
外部リンク:techiedelight.com

presentation/b_presentation.py
外部リンク:techiedelight.com
すみません
a_presentation.pyとb_presentation.pyのelseの中で
self._set_new_p(p)のあとにbreakが必要でした
256: デフォルトの名無しさん [sage] 2023/12/01(金) 06:10:11.53 ID:+Sulqil7(1) AAS
>>254,255
自己解決しました
Mediatorパターンが参考になりました
遷移先のPresentationクラスの生成をCreatorクラスにまかせて、
PresentationクラスはそのインターフェースCreatorBaseのインスタンスを持つようにしました
CreatorクラスのインスタンスはRPAクラスのメンバーにしてPresentationに__init__()の引数として渡しました
すべてのPresentationクラスの実装のインポートをCreator内に集約することでPresentation間での循環インポートを解消できました
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.051s