避免Python中的冗余

Jas*_*per 6 python import redundancy init

我最近开始使用Python 2.6 for Ubuntu Server admin,并且有两个关于冗余的小问题:

首先是进口:它们看起来都像

从类导入类

from class import Class
Run Code Online (Sandbox Code Playgroud)

第二件事是__init__方法:

__init__(self,arg1,...,argn):
    self.arg1 = arg1
    ...
    self.argn = argn
Run Code Online (Sandbox Code Playgroud)

有没有办法避免这些重复?

gru*_*czy 7

第二件事不是冗余 - 它是设置实例属性.你也可以这样做:

class Foo:

   def __init__(self, **kwargs):
       for name, value in kwargs.items():
          setattr(self, name, value)
Run Code Online (Sandbox Code Playgroud)

但是你需要像这样调用Foo:

   Foo(arg1=1, arg2=2, arg3=3)
Run Code Online (Sandbox Code Playgroud)

你的导入似乎也有不正确的语法.它应该是from Class import Class.这看起来很多,因为看起来,你将每个类存储在一个单独的文件(模块)中 - 这完全是多余的.Python不是Java,通常应该在一个模块中容纳更多对象.请记住,该模块本身就是一个对象.此外,您应该正确命名模块 - 默认的代码样式指南说模块应该全部小写,没有特殊的字符.喜欢re或者urllib例如.