pypi.org
Pythonのワイルドカードインポートimport *
は便利ですが、どの変数・関数を利用しているか分かりにくいです。
そんな場合、このremovestar
を使うと、ワイルドカードインポートを明示的インポートに置き換えてくれます。
import文周りがスッキリするので、
リファクタリングの際にきっと役立つと思います。
利用例
サンプルコード
pyqt radiobutton - Python Tutorial から拝借
from PyQt5.QtWidgets import *
import sys
class Window(QWidget):
def __init__(self):
QWidget.__init__(self)
layout = QGridLayout()
self.setLayout(layout)
radiobutton = QRadioButton("Australia")
radiobutton.setChecked(True)
radiobutton.country = "Australia"
radiobutton.toggled.connect(self.onClicked)
layout.addWidget(radiobutton, 0, 0)
radiobutton = QRadioButton("China")
radiobutton.country = "China"
radiobutton.toggled.connect(self.onClicked)
layout.addWidget(radiobutton, 0, 1)
radiobutton = QRadioButton("Japan")
radiobutton.country = "Japan"
radiobutton.toggled.connect(self.onClicked)
layout.addWidget(radiobutton, 0, 2)
def onClicked(self):
radioButton = self.sender()
if radioButton.isChecked():
print("Country is %s" % (radioButton.country))
app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())
利用例1 removestar file.py
インポートするモジュールが明示されているimport文が表示されます。
$removestar pyqt_example.py
--- original/pyqt_example.py
+++ fixed/pyqt_example.py
@@ -1,4 +1,4 @@
-from PyQt5.QtWidgets import *
+from PyQt5.QtWidgets import QApplication, QGridLayout, QRadioButton, QWidget
import sys
利用例2 removestar file.py -i
-i
, もしくは --in-place
オプションを付けることで、file.py
のワイルドカードインポートを、利用例1のような明示的インポートに置換することができます。
from PyQt5.QtWidgets import QApplication, QGridLayout, QRadioButton, QWidget
import sys