python类有什么用?

Bon*_*lin 0 python alias copy class

似乎他们唯一的价值就是存储属性.即便如此,这些都无法改变,或者所有实例都会反映出这些变化!

如果我在这里上课:

# Vertex
class Vertex:
   label = str()
   ID = int()
   outEdges = list()
   inEdges = list()
Run Code Online (Sandbox Code Playgroud)

创建一个新的顶点对象:

v = Vertex()
Run Code Online (Sandbox Code Playgroud)

并添加到v的outedges:

v.outEdges.append(1)
Run Code Online (Sandbox Code Playgroud)

然后Vertex.outEdges不再是一个空列表,但也包含1.

那我应该如何使用python类?有了复制模块吗?一点也不?

cdh*_*wie 6

您声明的属性是类级别的,并且由类的所有实例共享.如果希望这些值特定于实例,则需要使用正确的初始化程序/构造函数:

# Vertex
class Vertex:
   def __init__(self):
      self.label = str()
      self.ID = int()
      self.outEdges = list()
      self.inEdges = list()
Run Code Online (Sandbox Code Playgroud)

您还可以在类上创建方法,而不仅仅是属性.

class Vertex:
   # def __init__(self): ...

   def allEdges(self):
      return self.outEdges + self.inEdges
Run Code Online (Sandbox Code Playgroud)