python詳しいやつに聞きたいことがある
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 18:48:39.756ID:f5ByQxE50
例えばこんなファイル構造で
proj
├── dir
│   ├── __init__.py
│   ├── class_a.py
│   └── class_b.py
└── main.py

__init__.pyがこうなってて
from .class_a import ClassA
from .class_b import ClassB

main.pyがこうなってる時
import dir

dir.ClassA, dir.ClassB として参照できるのはいいけど
dir.class_a.ClassA, dir.class_b.ClassB みたいな参照もできちゃうよね?
そっちはできなくしたいんだが可能?
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 18:50:18.507ID:Qz14IcD9M
お前には無理
0003以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 18:50:26.552ID:f5ByQxE50
ちなみにシンセガイジではない
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 18:52:19.106ID:f5ByQxE50
いないのか
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 19:03:56.005ID:+eY3ElYu0
そもそもできないのでは…
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 19:05:52.961ID:f5ByQxE50
__init__.pyの方にクラス定義をおけばできるぽいけど
ファイルはクラスごとにわけたい
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 19:08:13.087ID:f5ByQxE50
標準ライブラリのjsonなんかも
import json
json.decoder.JSONDecodeErrorってなるのかあ
0008以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 19:10:43.354ID:PhcJ0vrW0
なんでやりたいのかは知らんけどPython内だけでprivateみたいな挙動とかは出来ないと思う
参照させたくない部分は他言語で実装しちゃうのはダメなの?
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 19:12:59.636ID:f5ByQxE50
だめってことはないんだがなんとなく構造がキレイじゃないじゃん?
javaなんかもフォルダと名前空間が対応してるけど、pythonはそれに加えてファイル自体も名前空間を持ってるせいでclass_a.ClassAみたいな参照もできるのが気持ち悪い
気持ち悪いし、冗長
0010以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 19:14:59.698ID:f5ByQxE50
多分俺がなんかpythonの流儀に馴染めてないだけでほとんどの人にとってはそこまでおかしな挙動じゃないんだろうけど…
0011以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/20(土) 19:19:39.509ID:PhcJ0vrW0
>>6
詳しいやり方覚えてないけど__class_a__.pyみたいな感じでそれっぽい挙動はできたような気がする
でも__init__.pyの中も別に参照できない訳じゃないから結局参照させないようにするのは無理なんじゃないかな

なんかのIDEかなんかで自分が見えてしまうのが嫌って理由ならIDE側の設定どうにかすりゃ消せる可能性あるかもしれん
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況