【问题标题】:Python director listing error, classPython目录列表错误,类
【发布时间】:2015-03-06 16:04:44
【问题描述】:
import os
class sortare:
    dictionar = raw_input("Scrie calea catre director: ")
    lista = lista.os.listdir(dicionar)
    def __init__(self):
        for item in lista:
            print item
            print len(item)

我学习了 python,并创建了一个类,列出了director 上的文件/目录。

哪里错了?

【问题讨论】:

  • 不看你的整个代码很难说,但通常你应该把你的类初始化代码all放在__init__方法中。您的dictionar =lista = 行可能放错了位置。
  • 我尝试了不同的方法,但我不太了解类方法(工作学习),我在这种模式下尝试:pastebin.com/hku285qV
  • 您通常不应该在for 循环内返回值,因为这会导致循环立即终止。在任何情况下,您都不允许从 __init__ 方法中返回任何内容。为什么不尝试使用常规函数而不是类?
  • 常规功能很好,但我想了解类;无论如何,我能找到一个很好的例子来上课吗?或者我在这里做错了什么。非常感谢。

标签: python class listdir


【解决方案1】:
import os

class sortare:
    def __init__(self):
        dictionar = raw_input("Scrie calea catre director: ")
        lista = lista.os.listdir(dicionar)
        for item in lista:
            print item
            print len(item)

sortare_object = sortare()

您创建了一个课程。要运行__init__ 方法,您需要创建该类的对象。这就是我添加sortare_object = sortare() 行的原因。

【讨论】:

    【解决方案2】:

    首先你犯的错误是变量名的不同,首先你使用“dictionar”,然后使用“dicionar”使用它们中的任何一个。

    除此之外,我猜你面临的问题是类中的变量不是全局的,要解决这个问题,你可以做的是将变量声明为全局变量,如下所示:

       import os
       class sortare:
           global dictionar, lista
           dictionar = raw_input("Scrie calea catre director: ")
           lista = os.listdir(dictionar)
           def __init__(self):
    
               lista = os.listdir(dictionar)
               for item in lista:
                   print item
                   print len(item)
    

    但这不是编写代码的正确方法,您应该在外部请求输入参数,然后只将“lista”作为参数传递给函数,或者您可以在 init 中添加请求输入和计算 lista。

    方法一:

       import os
       class sortare:
    
           def __init__(self, lista):
    
               for item in lista:
                   print item
                   print len(item)
    
    
       dictionar = raw_input("Scrie calea catre director: ")
       lista = os.listdir(dictionar)
       sortare(lista)
    

    方法二:

       import os
       class sortare:
    
    
           def __init__(self):
               dictionar = raw_input("Scrie calea catre director: ")
               lista = os.listdir(dictionar)
               for item in lista:
                   print item
                   print len(item)
    
       sortare(lista)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 2013-10-30
      • 2019-09-30
      • 2012-11-19
      • 1970-01-01
      • 2011-03-11
      • 2011-06-11
      相关资源
      最近更新 更多