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类?有了复制模块吗?一点也不?
您声明的属性是类级别的,并且由类的所有实例共享.如果希望这些值特定于实例,则需要使用正确的初始化程序/构造函数:
# 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)