相关疑难解决方法(0)

类__init __()函数内部和外部的变量

我试图理解,除了这个名字之外,这些类之间是否有任何区别?如果我在声明变量"value"时使用或不使用__init __()函数会有什么不同吗?

class WithClass ():
    def __init__(self):
        self.value = "Bob"
    def my_func(self):
        print(self.value)

class WithoutClass ():
    value = "Bob"

    def my_func(self):
        print(self.value)
Run Code Online (Sandbox Code Playgroud)

我主要担心的是,我将以一种方式使用它,因为这将导致我的问题进一步发展(目前我使用init调用).

python oop class

173
推荐指数
4
解决办法
11万
查看次数

Python类中的类属性阴影

我正在学习这个,这是为了理解类的属性.但与以下代码片段的输出混淆.

class A:
    aliases = None
    name = None

    def __init__(self,name):
        self.name = name
        self.aliases = set([name])

    def add_aliases(self,a):
        self.aliases.add(a)

    def __repr__(self):
        return str(self.name) + str(self.aliases)

arr = []
for i in range(3):
    arr.append(A(i))
    arr[-1].add_aliases(i+1)

for item in arr:
    print item

A.aliases = set([]) ##Modify the static element of class
for item in arr:
    print item  
Run Code Online (Sandbox Code Playgroud)

Python解释器:2.7.9

输出是

0set([0, 1])
1set([1, 2])
2set([2, 3])
0set([0, 1])
1set([1, 2])
2set([2, 3])
Run Code Online (Sandbox Code Playgroud)

我期待这样的东西作为输出.

0set([2, 3])
1set([2, 3])
2set([2, …
Run Code Online (Sandbox Code Playgroud)

python

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

如何在python中定义没有默认值的类属性

我是一名C#开发人员学习python.

如果我想定义一个具有某些属性的类,但不为属性提供默认值,那该怎么办?

例如(这是我最好的猜测方法):

class Spam
    eggs = None
    cheese = None
Run Code Online (Sandbox Code Playgroud)

或者,这是合法的:

class Spam
    eggs
    cheese
Run Code Online (Sandbox Code Playgroud)

或者是其他东西?

python class python-2.7

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

标签 统计

python ×3

class ×2

oop ×1

python-2.7 ×1