চিতাবনী
from package import * ব্যবহার করা খারাপ অভ্যাস। কারণ:
- প্যাকেজ সুপার-মডিউল নয়, এটি মডিউলগুলোর সংকলন
- নেমস্পেস পলিউশন ও নেম কনফ্লিক্ট হয়
- কোড পড়া কঠিন হয় (কোনো নাম কোথা থেকে আসছে জানা যায় না)
যদি আপনাকে অবশ্যই করতে হয়
__init__.py-এ __all__ লিস্ট ডিফাইন করুন:
# mypackage/__init__.py
__all__ = ['submodule1', 'submodule2', 'some_function']
তब from mypackage import * শুধু লিস্ট করা নেমগুলো ইমপোর্ট করবে।
বিকল্প: স্পষ্ট ইমপোর্ট (সুপারিশকৃত)
# ভালো
from mypackage.submodule1 import func1
from mypackage import submodule2
# অথবা
import mypackage.submodule1 as m1
m1.func1()
সারসংক্ষেপ
- কभीই `import *` ব্যবহার করবেন না প্রোডাকশন কোডে।
- প্রয়োজনীয় স্পষ্টভাবে ইমপোর্ট করুন।
- প্যাকেজ ডিজাইনার হলে `
__all__` ডিফাইন করুন।