rpdb2源码分析(2)

11、怎么解析命令行参数?

使用getopt模块。请参考:

Python命令行:getopt模块详解 https://www.jianshu.com/p/a877e5b46b2d

python 之 分割参数getopt http://andylin02.iteye.com/blog/845355

Python命令行参数解析:getopt和argparse https://blog.csdn.net/lanzheng_1113/article/details/77574446

Python 命令行参数和getopt模块详解 https://www.cnblogs.com/kex1n/p/5975722.html

12、如何打印全局变量?

使用globals()函数,返回字典形式的全局变量。

13、你能看懂下面的语句吗?

[_rpdb2_pwd, None][_rpdb2_pwd in [None, '']]

我觉得不要用bool值做下标,比较好一些。

14、把对象或者值转换为字符串的方法?

使用repr()函数或者str()函数,前者对python友好,可以使用eval还原为对象或者值,而str()对人友好,通常无法eval。

15、如何复制对象?

参考python-copy模块使用 https://www.cnblogs.com/tiannan/p/6212354.html

16、多线程及Condition()方法如何使用?

参考python--threading多线程总结 https://www.cnblogs.com/tkqasn/p/5700281.html

python笔记10-多线程之线程同步(锁lock) https://www.cnblogs.com/yoyoketang/p/8329265.html

17、【源码:断点】断点管理器运行在被调测对象上,而断点管理器代理运行在调试对象上。

18、交互式命令行如何实现?

使用cmd.Cmd模块,参考:

简单认识python cmd模块 https://www.cnblogs.com/r00tuser/p/7515136.html

比较全的python cmd模块的用法 http://blog.51cto.com/capricorn/1891402

19、readline模块的作用是什么?

python - readline 模块 https://www.cnblogs.com/blitheG/p/8036630.html

它是用于补全python命令行命令的。其中get_completer_delims()命令是获取分隔符的。

20、【源码:执行过程】

1)主入口:源码结尾的run_rpdb2()

2)运行main函数,在Ln14557行。

3)如果不带参数,需要调用StartClient_func函数,在14740行。

4)实际上就是调用StartClient函数,在14470行。

5)在此函数中,创建了CConsole对象(14480行),这个对象内部创建了CConsoleInternal对象(1448行),而CConsoleInternal类继承自threading.Thread和cmd.Cmd(11787行)。

6)在CConsoleInternal中重写了Thread的run方法,在run方法中调用了Cmd的cmdloop()方法。

你可能感兴趣的:(rpdb2源码分析(2))