Python类和对象创建

Python类和对象创建,python,Python,我在创建类的对象时遇到问题。类的对象具有其类的属性(即字段、方法)。我们还可以为类之外的对象定义属性吗 class myclass: pass object1 = myclass() object2 = myclass() object1.list = [10] object1.list.append(4) object2.fruit = 'apple' print object2.fruit print object1.list 输出: apple [10, 4] 请解释它

我在创建类的对象时遇到问题。类的对象具有其类的属性(即字段、方法)。我们还可以为类之外的对象定义属性吗

class myclass:
    pass

object1 = myclass()
object2 = myclass()

object1.list = [10]
object1.list.append(4)

object2.fruit = 'apple'

print object2.fruit
print object1.list
输出:

apple
[10, 4]
请解释它是如何工作的。


从一个小搜索中,我发现了一篇文章,我相信这篇文章在快速阅读后能够解决您所谈论的问题,听起来这在python中实际上是合法的。您正在创建类属性。它们只能从您分配给它们的类中访问。例如,
print object2.list
无效。它基本上是一个实例变量,不仅对对象类型而且对对象本身都是独占的

我会试试看。如果不清楚,请提前道歉。到目前为止,我所阅读的内容有助于我理解类对象:

类对象只不过是一个名称空间,并为其分配了dict。当您添加属性时,它们会作为键添加到dict中。您可以通过执行以下操作来检查这一点


dir(object1)
dir(object2)
但在上面的示例中添加属性会导致内存增加,您可以通过声明_插槽来停止这种行为__

class A(object):
    __slots__ = []
这将停止A的任何实例的属性创建。有关详细信息,请参阅


希望这有帮助

我甚至不知道你能做到这一点。我想我每天都会学到一些新东西,因为你可以在输出中看到它在工作,那么你的问题到底是什么?列表[10]没有在类中定义,那么在定义它之前我如何使用它???