我一直在寻找用Python实现的FTP服务器并遇到了这个https://gist.github.com/scturtle/1035886。我试图理解它,但作为一个Web开发人员和相当新的Python我发现它令人困惑。
以下是我不明白的事情:
该属性出现在哪里,未在任何地方定义
行号:22,23
def run(self):
self.conn.send('220 Welcome!\r\n')
此功能/代码定义在哪里?
行号:223,224
ftp.daemon=True
ftp.start()
我知道Python中的基本 OOP 任何参考资料,以理解代码并变得更强大Python程序员将会感激。谢谢!
答案 0 :(得分:0)
在赋值中,如果不存在,python将创建属性(变量)。所以在init
中它实际上self.conn=conn
来创建属性。 __init__
几乎是在创建类的实例时调用的构造函数。 ftp.daemon
也是如此。现在,ftp.start()
继承自threading.Thread
。
答案 1 :(得分:0)
(1)变量在__init__
def __init__(self,(conn,addr)):
self.conn=conn
...
(2)FTPserverThread继承自threading.Thread。属性和方法在父类中定义。
当困惑使用标准python库的代码时,read the docs会有所帮助。搜索“线程”并阅读。