python詳しいやつに聞きたいことがある
■ このスレッドは過去ログ倉庫に格納されています
例えばこんなファイル構造で
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 みたいな参照もできちゃうよね?
そっちはできなくしたいんだが可能? __init__.pyの方にクラス定義をおけばできるぽいけど
ファイルはクラスごとにわけたい 標準ライブラリのjsonなんかも
import json
json.decoder.JSONDecodeErrorってなるのかあ なんでやりたいのかは知らんけどPython内だけでprivateみたいな挙動とかは出来ないと思う
参照させたくない部分は他言語で実装しちゃうのはダメなの? だめってことはないんだがなんとなく構造がキレイじゃないじゃん?
javaなんかもフォルダと名前空間が対応してるけど、pythonはそれに加えてファイル自体も名前空間を持ってるせいでclass_a.ClassAみたいな参照もできるのが気持ち悪い
気持ち悪いし、冗長 多分俺がなんかpythonの流儀に馴染めてないだけでほとんどの人にとってはそこまでおかしな挙動じゃないんだろうけど… >>6
詳しいやり方覚えてないけど__class_a__.pyみたいな感じでそれっぽい挙動はできたような気がする
でも__init__.pyの中も別に参照できない訳じゃないから結局参照させないようにするのは無理なんじゃないかな
なんかのIDEかなんかで自分が見えてしまうのが嫌って理由ならIDE側の設定どうにかすりゃ消せる可能性あるかもしれん ■ このスレッドは過去ログ倉庫に格納されています