Python:我应该使用一个类来包装main吗?

时间:2016-10-22 00:15:26

标签: python class

我有一个简单的脚本需要轮询,例如'天气数据'每24小时使用cron并将输出转储到DB。

实施此操作的Pythonic方法最多的是什么?

但我计划使用解析中使用的WeatherRecord类,该类负责清理和修改所需格式的原始输入。

下面的第二种方法就像包装" main"在课堂上没有任何好处。

感谢您提出任何意见

功能版本:

file:bin / import-weather

from weather.weather import import_weather()

def main()
    import_weather()    


if __name__ == "__main__":
    main()

档案:weather / weather.py

def import_weather():
    raw_weather = get_weather('http://weather.is.here/')
    parsed_weather = parse_weather(raw_weather)
    db_connection = DbConnection.getClient()
    write_weather_to_db(parsed_weather, db_connection)

班级版本:

file:bin / import-weather

from weather.weather import WeatherImporter

def main():
    weather = WeatherImporter()
    weather.parse_weather()
    weather.write_to_db()

if __name__ == "__main__":
    main()

档案:weather / weather.py

class WeatherImporter(object):
    def __init__(self):
        self.db_connection = DbConnection.getClient()
        self.url = 'http://weather.is.here/'
        self.raw_weather = self._get_weather()  # list of dict
        self.parsed_weather = None              # list of WeatherRecord

    def _get_weather(self):
        print(self.url)
        return ["{JSON Data}"]

    def parse_weather(self):
        self.parsed_weather = self.raw_weather

    def write_to_db(self):
        print(self.parsed_weather)
        pass

0 个答案:

没有答案