bei meinem Python Projekt wollte ich Argumente mit <optparse>
auslesen. Leider habe ich nur Beispiele zu einfachen Skripten
gesehen und keine Beispiele zu Klassen.
Mein Beispiel funktioniert zwar, aber ich finde das die Argumente
zu häufig vorkommen. Also einmal kommen die Argumente
bei der '__init__' Methode vor, dann kommen sie bei der
Instanzierung der Klasse nochmal vor.
Wie kann ich das vereinfachen?
Meine Klasse sieht zur Zeit wie folgt aus:
Code: Alles auswählen
from gnuradio import gr
from gnuradio.wxgui import fftsink2
from grc_gnuradio import usrp as grc_usrp
from grc_gnuradio import wxgui as grc_wxgui
from optparse import OptionParser
import wx
import time
class uebertragungschar_LF_RX(grc_wxgui.top_block_gui):
def __init__(self, sub_dev_side='B', sub_dev_ant='RXB', usrp_freq_min=0, usrp_freq_max=29e3):
grc_wxgui.top_block_gui.__init__(
self, title="AM Receiver - Diplomarebeit - Markus Feldmann - Thu Feb 26 11:58:12 2009")
##################################################
# Parameters
##################################################
self.sub_dev_side = sub_dev_side
self.sub_dev_ant = sub_dev_ant
self.usrp_freq_min = usrp_freq_min
self.usrp_freq_max = usrp_freq_max
##################################################
# Variables
##################################################
self.usrp_freq = usrp_freq = 0e3
self.throttle_sample_rate = throttle_sample_rate = 32e3
self.middle_freq_fft_plot = middle_freq_fft_plot = usrp_freq
self.gain_usrp_source = gain_usrp_source = 0
self.fft_plot_sample_rate = fft_plot_sample_rate = 32e3
self.decimation_usrp_source = decimation_usrp_source = 128
. . .
if __name__ == '__main__':
parser = OptionParser()
parser.add_option("--subdev-side", dest="sub_dev_side", type="str", default='B',
help="select USRP side A or B")
parser.add_option("--subdev-ant", dest="sub_dev_ant", type="str", default='RXB',
help="select USRP subdevice Antenna, for example RXA or RXB")
parser.add_option("--usrp_freq_min", dest="usrp_freq_min", type="float", default=0)
parser.add_option("--usrp_freq_max", dest="usrp_freq_max", type="float", default=29e3)
(options, args) = parser.parse_args()
tb = uebertragungschar_LF_RX(sub_dev_side=options.sub_dev_side, \
sub_dev_ant=options.sub_dev_ant, \
usrp_freq_min=options.usrp_freq_min, \
usrp_freq_max=options.usrp_freq_max)
tb.Run()