2012-05-04 19 views
0

我有兩個類,一個使用硒瀏覽互聯網,另一個插入數據到MySQL數據庫。傳遞數據庫連接到另一個類

class DBConnection: 
    def __init__(self, db_host=DB_HOST, db_port=DB_PORT, db_user=DB_USER, db_password=DB_PASSWORD, db_name=DB_NAME): 
     self.host = DB_HOST 
     self.port = DB_PORT 
     self.name = DB_NAME 
     self.user = DB_USER 
     self.password = DB_PASSWORD 
     self.conn = None 
     self.cursor = None 

class WebDriver: 
    def __init__(self, download_folder=DOWNLOAD_FOLDER): 
     self.driver = False 

    def start_webdriver(self): 
     """ 
     Initiate a Firefox profile for Selenium WebDriver. 
     """ 
     fp = webdriver.FirefoxProfile() 
     self.driver = webdriver.Firefox(firefox_profile=fp) 

什麼會得到從類的webdriver一個數據庫連接的最佳方式?會有這樣的工作嗎?

class WebDriver: 
    def __init__(self, download_folder=DOWNLOAD_FOLDER): 
     self.driver = False 
     self.download_folder = download_folder 
     self.last_payment = None 
     self.DBConnection = DBConnection() 
     self.DBConnection.get_conn() 
     self.DBConnection.get_cursor() 

回答

2

對於開始,您正在初始化DBConnection錯誤!應該

class DBConnection(object): 
    def __init__(self, db_host=DB_HOST, db_port=DB_PORT, db_user=DB_USER, db_password=DB_PASSWORD, db_name=DB_NAME): 
     self.host = db_host # lower case! 
     self.port = db_port 
     self.name = db_name 
     self.user = db_user 
     self.password = db_password 

那麼你就可以讓用戶像這樣指定設置:

class WebDriver(object): 
    def __init__(self, download_folder=DOWNLOAD_FOLDER, **kwargs): 
     self.driver = False 
     self.download_folder = download_folder 
     self.last_payment = None 
     self.DBConnection = DBConnection(**kwargs) 
     self.DBConnection.get_conn() 
     self.DBConnection.get_cursor() 
+0

謝謝你,會是什麼的'kwarg'用戶可能傳遞給DBConnection的一個例子嗎? – David542

+0

'wd = WebDriver(db_host ='192.168.0.5',db_port = 3401)' –

相關問題