-2

编译器一直这么说IndentationError: expected an indented block,但我找不到我的错误。请帮助 Python 新手。

class BackgroundUploadFTP(threading.Thread):

    def __init__ (queueFTP):    

    def run(queueFTP):

         while True :

            if(len(queueFTP)!= 0):
                 meinftp = ftplib.FTP("altes-vennhaus.de")
                 meinftp.login("altes-vennhaus.de","XXXXX")         
                 directory = '/bilder' #ftp-Hauptverzeichnis  
                 meinftp.cwd(directory) #Wir nutzen das Hauptverzeichnis des ftp-Servers.

                 meinftp.storbinary('Stor '+'altes-vennhaus.jpg', queueFTP.popleft()) #Es wird die Datei mit
                 # dem Namen test.txt aus dem Hauptverzeichnis des Servers in die lokale
                 # Datei mit dem Namen test2.txt im Verzeichnis E:/ geschrieben.    
                 file.close()
                 meinftp.quit() #"höfliches" Trennen meinerseits der ftp-Verbindung
4

4 回答 4

3
def __init__ (queueFTP):
    # code here should be indented

或者,也许你的意思是__init__留空?

def __init__(queueFTP):
    pass
于 2013-08-08T19:15:14.560 回答
2

您的方法中根本没有代码__init__。如果您不需要专门的__init__,请不要定义一个。如果您确实需要一个,那么该代码必须缩进。添加缩进pass语句作为占位符将解决您直接的语法问题,但它没有意义。

于 2013-08-08T19:16:35.730 回答
0

在 python 中,空格不会被忽略。它们是语法的一部分。如果你知道 Java/C/C++ ,这里有一个类比:java 中的每个 {} 块都使用在行前添加一个 [space] 来表示。

于 2013-08-08T19:19:43.853 回答
0

您不能有一个空方法,这会使编译器感到困惑,因为它需要一个缩进块如果您使用该语句
,您可以解决这个问题pass

def __init__ (queueFTP):
  pass                   # this allows you to have a method that does nothing

或者您也可以完全删除此方法,它不是必需的。
你会留下这个:

class BackgroundUploadFTP(threading.Thread):
  def run(queueFTP):

    while True :
      if(len(queueFTP)!= 0):
        meinftp = ftplib.FTP("altes-vennhaus.de")
        meinftp.login("altes-vennhaus.de","XXXX")          
        directory = '/bilder' #ftp-Hauptverzeichnis  
        meinftp.cwd(directory) #Wir nutzen das Hauptverzeichnis des ftp-Servers.

        meinftp.storbinary('Stor '+'altes-vennhaus.jpg', queueFTP.popleft()) #Es wird die Datei mit
        # dem Namen test.txt aus dem Hauptverzeichnis des Servers in die lokale
        # Datei mit dem Namen test2.txt im Verzeichnis E:/ geschrieben.    
        file.close()
        meinftp.quit() #"höfliches" Trennen meinerseits der ftp-Verbindung
于 2013-08-08T19:15:09.917 回答