Как бороться с переменными конфигурации в Python? - PullRequest
0 голосов
/ 25 марта 2011

Я новичок в Python и провожу с ним несколько тестов.

Мне нужно знать, как лучше всего обращаться с переменными конфигурации.

Например, для этого кода:

import twitter
import random
import sqlite3
import time
import bitly_api #https://github.com/bitly/bitly-api-python

class TwitterC:         
    def logtodatabase(self, tweet, timestamp):
        # Will log to the database
        database = sqlite3.connect('database.db') # Create a database file
        cursor   = database.cursor() # Create a cursor
        cursor.execute("CREATE TABLE IF NOT EXISTS twitter(id_tweet INTEGER AUTO_INCREMENT PRIMARY KEY, tweet TEXT, timestamp TEXT);") # Make a table
        # Assign the values for the insert into
        msg_ins       = tweet
        timestamp_ins = timestamp
        values        = [msg_ins, timestamp_ins]
        # Insert data into the table
        cursor.execute("INSERT INTO twitter(tweet, timestamp) VALUES(?, ?)", values)
        database.commit() # Save our changes
        database.close() # Close the connection to the database

В этом коде, как я могу заменить 'database.db' на переменную вне класса, для лучшей конфигурации.

С наилучшими пожеланиями,

Ответы [ 3 ]

2 голосов
/ 25 марта 2011

Или вы можете использовать argparse , если вы хотите передать конфигурацию из командной строки.

Затем при создании класса TwitterC вы можете передать нужные параметры конфигурации.

class TwitterC:
    def __init__(self, database):
        self.database = database
    def logtodatabase(self, tweet, timestamp):
        # Will log to the database
        database = sqlite3.connect(self.database) # Create a database file
        #(...)
2 голосов
/ 25 марта 2011

Вы можете использовать ConfigParser из стандартной библиотеки Python.

0 голосов
/ 25 марта 2011

Вы можете создать скрипт Python, который включает переменные конфигурации: config.py:

dbname = 'database.db'
...

ваш файл:

import config
database = sqlite3.connect(config.dbname)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...