请解释这个基于Python的FTP服务器代码

时间:2014-11-10 23:09:27

标签: python ftp ftp-server python-sockets

我一直在寻找用Python实现的FTP服务器并遇到了这个https://gist.github.com/scturtle/1035886。我试图理解它,但作为一个Web开发人员和相当新的Python我发现它令人困惑。

以下是我不明白的事情:

  1. 该属性出现在哪里,未在任何地方定义
    行号:22,23

    def run(self):
        self.conn.send('220 Welcome!\r\n')
    
  2. 此功能/代码定义在哪里?
    行号:223,224

    ftp.daemon=True
    ftp.start()
    
  3. 我知道Python中的基本 OOP 任何参考资料,以理解代码并变得更强大Python程序员将会感激。谢谢!

2 个答案:

答案 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会有所帮助。搜索“线程”并阅读。