小编Chu*_*uck的帖子

Python:获取实例化类的名称?

例:

class Class1:
    def __init__(self):
        self.x = Class2('Woo!')

class Class2:
    def __init__(self, word):
        print word

meow = Class1()
Run Code Online (Sandbox Code Playgroud)

如何派生创建self.x实例的类名?换句话说,如果给我实例self.x,我怎么得到名称'Class1'?使用self.x.__class__.__name__显然只会给你Class2名称.这甚至可能吗?谢谢.

python class instance

7
推荐指数
1
解决办法
2万
查看次数

Python中替代开关的性能差异

我已经阅读了一些关于Python中switch语句的替代方法的文章.主要使用dicts代替很多if和elif.然而,没有人真正回答这个问题:是否有更好的性能或效率?我已经阅读了一些论据,如果和elifs必须检查每个语句并且使用许多ifs和elif变得低效.然而,使用dicts可以解决这个问题,但是你最终必须创建新的模块才能调用,从而取消性能提升.唯一不同的是可读性.

任何人都可以对此发表评论,从长远来看真的有什么不同吗?有没有人经常使用替代品?我要问的唯一原因是因为我最终会得到30-40 elif/if's,将来可能更多.任何输入都表示赞赏.谢谢.

python performance switch-statement

3
推荐指数
2
解决办法
1211
查看次数

SQL返回额外数据

嘿那里,想知道是否有人可以帮助SQL和Python的新手.我以为自己对它有了相当不错的把握,但最近发生了一些奇怪的事情.

以下是从较大部分剪切的以下代码:

  try:
      self.db.query("SELECT * FROM account WHERE email = '{0}' AND pass = '{1}'".format(self.mail.strip(self.bchars),self.pw.strip(self.bchars)))
  except MySQLdb.Error, e:
      print "Error %d: %s" % (e.args[0], e.args[1])

  exists = self.db.store_result().fetch_row()
  print "EXISTS",exists
Run Code Online (Sandbox Code Playgroud)

它用来打印这个:

EXISTS ((2, 'test@test.com', '1234', 1, 0, 2161, '192.168.1.47', 0),)
Run Code Online (Sandbox Code Playgroud)

现在,它打印出来:它用来打印这个:

EXISTS ((2L, 'test@test.com', '1234', 1L, 0L, 2161, '192.168.1.47', 0L),)
Run Code Online (Sandbox Code Playgroud)

我不知道这些L's来自哪里.我检查了SQL数据库,甚至重新加载它以确保.我已经恢复了最后一天的所有代码(所有代码都在运行),但仍无法找到解决方案.我也尝试过搜索,但我甚至不确定这个问题是什么,所以很难搜索.感谢任何人提供的任何帮助或信息.

python mysql sql

1
推荐指数
1
解决办法
175
查看次数

Python 通过 dict 进行目录搜索和组织

大家好,这是我最近第一次尝试进入Python的文件和操作系统部分。我正在尝试搜索一个目录然后找到所有子目录。如果该目录没有文件夹,则将所有文件添加到列表中。并通过听写来组织它们。

例如,一棵树可能看起来像这样

  • 起始路径
    • 目录 1
      • 子目录1
      • 子目录2
      • 子目录 3
        • 子子目录
          • 文件.jpg
          • 文件夹1
            • 文件1.jpg
            • 文件2.jpg
          • 文件夹2
            • 文件3.jpg
            • 文件4.jpg

即使 subsubdir 中有文件,也应该跳过它,因为它有文件夹。

现在,如果我知道要查找多少个目录,则通常可以使用 os.listdir 和 os.path.isdir 来执行此操作。但是,如果我希望它是动态的,则必须补偿任意数量的文件夹和子文件夹。我尝试过使用 os.walk,它会轻松找到所有文件。我遇到的唯一麻烦是使用包含文件的路径名创建所有字典。我需要按 dict 组织的文件夹名称,直到起始路径。

所以最后,使用上面的示例,字典及其中的文件应该如下所示:

dict['dir1']['subdir3']['subsubdir']['folder1'] = ['file1.jpg', 'file2.jpg']

dict['dir1']['subdir3']['subsubdir']['folder2'] = ['file3.jpg', 'file4.jpg']
Run Code Online (Sandbox Code Playgroud)

如果您对此有任何帮助或组织信息的更好想法,我们将不胜感激。谢谢。

python directory path os.walk subdirectory

0
推荐指数
1
解决办法
5965
查看次数