zoukankan      html  css  js  c++  java
  • BT源代码学习心得(二):程序运行参数的获取 转自CSDN:gushenghua的专栏

    BT源代码学习心得(二):程序运行参数的获取

    发信人: wolfenstein (NeverSayNever), 个人文集
    标  题: BT源代码学习心得(二):程序运行参数的获取
    发信站: 水木社区 (Sat Jul 30 21:08:27 2005), 文集
    (本文包含HTML标记,终端模式下可能无法正确浏览)
        把这部分单独列举出来,是因为我觉得BT的程序在处理配置参数方面的这部分代码很有
    参考价值。
        程序的配置参数首先来源于BitTorrent/defaultargs.py。这个模块中包含了一些参数
    的默认值,由于它们是直接编译进BT的模块中,因此即使其它的配置文件都丢失后,程序还
    是有一些默认值可以作为参数。defaultargs.py中定义了一个函数get_defaults可以让各个
    可执行模块得到它们对应的默认值。例如btdownloadgui和btmaketorrentgui得到的默认值
    是不同的。而且defaultargs.py中为可执行模块生成的默认属性集合是一个以三元组为元素
    的列表。每一个三元组代表一条属性(也就是一条程序的配置参数),每个三元组包含了属性
    的名称,属性的值和该属性的说明。值得注意的是,在后面我们可以看到,属性的说明直接
    作为帮助信息输出给用户。
        在获取完默认值后,各个可执行模块通常都调用BitTorrent/configfile.py中的函数
    parse_configuration_and_args来进一步从可能存在的配置文件和命令行参数中对程序运行
    的一些参数进行调整。这个函数中首先从配置文件中获取信息,值得一提的是它获取配置文
    件的方法。BT将在用户的"主目录"下建立一个.bittorrent的目录,并且从这里读取配置文
    件(如果这个文件不存在就建立一个,下次就存在了)。其中"主目录"的获取方法在
    BitTorrent/__init__.py中,它的实现方法比较巧妙,利用了python的os和os.path库进行
    操作,可以针对不同的操作系统使用合适的方法得到这个"主目录"。在windows下,这个目
    录通常是文档和设置目录下的用户名目录下的"Application Data",而在linux下这个目录
    就是~。
        在parse_configuration_and_args中,还要调用BitTorrent/parseargs.py模块中的
    parseargs对命令行中输入的参数进行处理。根据其中的注释,可以看出程序将会把以下格
    式的参数作为一种控制方面的操作(options)而改变原来的配置,其它的参数都只是简单得
    堆在args数组中供可执行模块自己去处理。这些格式有--aaa 1型,即以两个-号开头的参数
    ,将和他后面的参数一起,构成一个配置项(aaa=1),-a1型,即以一个-号开头的参数,直
    接取一个字母作为配置项的属性名,这个参数后面的子字符串作为配置项的属性值(a=1),
    -a 1型,即以一个-号开头的参数,但是后面只有一个字母,就将下一个参数作为属性值(因
    此这里也是a=1)。
        经过这些处理后,程序的其它部分就可以很方便得使用配置好的参数了,例如:
        if self.config['xxx']
             .......
        或者
        aaa = self.config['bbb']
        等等。
  • 相关阅读:
    3.K均值算法
    2.机器学习相关数学基础
    机器算法第一次作业
    语法制导的语义翻译
    算符优先分析
    自下而上语法分析
    LL(1)文法的判断,递归下降分析程序
    消除左递归
    DFA最小化,语法分析初步
    词法分析程序的设计与实现
  • 原文地址:https://www.cnblogs.com/kokoliu/p/616903.html
Copyright © 2011-2022 走看看