我初学class,理解不了起运作方式。有个地方看到这样2个class,然后定义了一个函数,没明白,请教一下。classNode():def__init__(self,x):self.value=xself.next=Noneself.previous=N...
我初学class,理解不了起运作方式。有个地方看到这样2个class,然后定义了一个函数,没明白,请教一下。
class Node():
def __init__(self, x):
self.value = x
self.next = None
self.previous = None
class Liste():
def __init__(self):
self.first = None
self.last = None
def add_top(x, l): # x是个数值,l是个链表 #
"""在链表的开头加入元素x"""
n = Node(x)
n.next = l.first
if l.first != None:
l.first.previous = n
l.first = n
if l.last == None:
l.last = n
说的好像是跟链表有关的东西,有人看的懂吗?
这个看不懂也罢,我想问几个问题,不需要明白的上面的类和函数也应该能回答:
1.class里面定义的属性的初始值,会被class外面的函数更改吗,如果改了,是永久更改吗?那class岂不是就变了?
例如上面Liste类里的self.first = None,初始值是None,这个None可以被改变吗?怎么改变?函数add_top有个l.first = n,这个就使得Liste类里的self.first=n 吗?
2.上面函数add_top里有个n=Node(x),此时,n是个什么东西呢?是个数值并且该数值等于x吗?如果我直接用命令print node(3),python会返回<__main__.node instance at>,这个是什么意思,我只知道好像是内存里存了个什么的意思,具体怎么回事?
3.l.first.previous = n 像这样连续使用2个点,接2个属性,是怎么回事?如果作用的?是把第一部分l.first返回的值,作为下一个属性previous的对象吗?
我类和对象的确搞得不是很清楚,因为根本就没人教,我自己也没有比较权威细致的教材,网上看的一点,讲的很模糊,所以不明白。(上面得class和函数可不是我自己写的,是一个教材上的,绝对正确)
如果不看上面那么长的部分,就请只回答下面3个问题
谢谢
展开