相关疑难解决方法(0)

Pythonic:在类的函数self .__ init__中使用__dict__

在使用spyder IDE 编写新类并使用pylint检查最终结果时,我遇到了错误消息(但代码按预期工作而没有错误).

上下文:在构造函数中,我想创建新成员(非常多).通常,这些很少,所以我使用这个编码:

class MyClass():
    def __init__(self):
        self.a = ...
        self.b = ...
Run Code Online (Sandbox Code Playgroud)

但是在很多成员的情况下(假设是10),所有设置为相同的初始值(假设它们都是dict()),我很想这样做:

class MyClass():
    def __init__(self):
        _vars = ["a", "b", "c", ...]
        for _var in _vars:
            self.__dict__[_var] = dict()
Run Code Online (Sandbox Code Playgroud)

在课堂上,我正在使用以下成员来引用成员:

class MyClass():
    def my_method(self):
        print self.c
Run Code Online (Sandbox Code Playgroud)

错误pylint的(在Spyder的):

在此文件上使用pylint时,我收到一条错误消息:

MyClass.my_method:'MyClass'的实例没有'c'member.

但是,代码运行得很好,没有错误,即.我可以毫无问题地访问会员'c'.

问题:这是一个正确的编码,还是应该避免这种方法来初始化成员?

python class

14
推荐指数
2
解决办法
7806
查看次数

在Python类构造函数中是否有"self.somevariable = somevariable"的快捷方式?

Python中的构造函数通常如下所示:

class SomeClass:
    def __init__(self, a, b = None, c = defC):
        self.a = a
        self.b = b or []
        self.c = c
Run Code Online (Sandbox Code Playgroud)

有没有这样的快捷方式,例如简单地定义__init__(self,**kwargs)和使用键作为属性self

python constructor class

6
推荐指数
3
解决办法
2767
查看次数

Python中是否有速记初始化器?

我没有找到一个简短的构造函数调用的引用,它会初始化调用者选择的变量.我在寻找

class AClass:
    def __init__(self):
        pass

instance = AClass(var1=3, var2=5)
Run Code Online (Sandbox Code Playgroud)

而不是写更重

class AClass:
    def __init__(self, var1, var2):
        self.var1 = var1
        self.var2 = var2
Run Code Online (Sandbox Code Playgroud)

或者更重

instance = AClass()
instance.var1 = 3
instance.var2 = 5
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

python

4
推荐指数
2
解决办法
174
查看次数

标签 统计

python ×3

class ×2

constructor ×1