天天看点

遇到的坑-对象之间的关系(1)啊啊啊,关于这篇文章,有很多问题,我自己又去调试了一下,发现不是那么回事。 这里是最新的关于这个问题的分析

啊啊啊,关于这篇文章,有很多问题,我自己又去调试了一下,发现不是那么回事。 这里是最新的关于这个问题的分析

https://blog.csdn.net/douziaaa/article/details/106046946

前言:

这两天用python过一遍基础数据结构,突然看着就卡壳了,先来看下之前的代码,然后再分析卡在那里。

class Node():
    '''创建单链表节点类'''
    def __init__(self,data,next=None):
        self.data = data
        self.next = next

class LinkedList():
    '''定义单链表类'''
    def __init__(self):
        # 初始化链表指针和链表长度
        self.head = None
        self.length = 0
    
    def createlinkedlist(self):
        '''创建单链表'''
        for count in [11, 14, 15, 22, 232]:
            self.head = Node(count, self.head)
            self.length += 1
        # print(self.head.data, self.length)
        return self.head,self.length  

    def searchindex(self,index):
        '''访问链表的某一项'''
        cur = self.head
        while index > 0:
            cur = cur.next
            index -= 1
        print(head.data)
           

好了,请观察

LinkedList

类中的

searchindex

方法,我们拿出来看

def searchindex(self,index):
        '''访问链表的某一项'''
        cur = self.head
        while index > 0:
            cur = cur.next
            index -= 1
        print(head.data)
           

第三行

cur = cur.next

蛮正常的啊,就是个赋值语句啊,有撒子问题麻!!!

嗯?????next是那里来的?????,emmm

好吧 我去找了一下过去学习的笔记,emm,好吧,我知道了,这是python内置的next()方法,用于

返回迭代器的下一个项目。光说怎么能行呢,我们试一试,来打开ipython3

导入包

from collections import Iterable

我们来定义一个类

class Test(): 
     def __init__(self,name): 
        self.name = name 
     def get(self): 
           print(isinstance(self.name,Iterable)) 
           

再来实例化以下

test = Test([11,22,44,55])

看结果

test.get()

上图

遇到的坑-对象之间的关系(1)啊啊啊,关于这篇文章,有很多问题,我自己又去调试了一下,发现不是那么回事。 这里是最新的关于这个问题的分析

哇,果然是,我emmm…,脑子容易忘记事情

萌新再学之前,还是先学以下语言的高级特性再来学数据结构哇