陈卫龙教授走了,身影在大楼拐角迅速消失了去。
望着陈卫龙教授匆匆离去的身影,谢嘉鸿,张思雅两人彼此对视了一眼,感觉老师更像是被逼走的,有一股狼狈而逃的错觉。
“谢师兄,这是我编写的Python程序,能不能麻烦你帮吗斧正一下。”周青打开笔记本上的某个编写程序,询问谢嘉鸿道。
谢嘉鸿转头,看着周青笔记本中的内容,欣然点头:“当然可以!”
谢嘉鸿低头认真阅览了一遍程序,抬头好奇地看着周青,笑问道:“Python语言学多久啦!有几处地方编写错误了呢!”
“刚学没几天,谢师兄,麻烦您了。”周青不好意思地说。
“难怪,初学的话,有几处比较容易犯的错误你注意一下。”谢嘉鸿理解地点了点头,指着屏幕中的编码提醒道。
“第一:将不带返回值的函数或方法的结果(准确来说返回值为None)赋给一个变量,比如这里:In[1]:lst=[2,3,9,12,6,8,11],In[2]:tmp=lst.sort(),In[3]:tmp,……。”
“第二:list等数据类型边遍历边修改结构,比如这个位置:ListIterator有add()方法,可以向List中添加对象,而Iterator不能ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,……。”
“第三:函数中传可变长度参数的错误,比如这个地方:……。”
“第四:类初始化方法传参数的问题,……。”
“……。”
谢嘉鸿将排查的编程错误一处处地指点出来,详细地替周青讲解分析起来。
周青双眼放光,竖耳倾听,一副好学学生的模样,点头连连。
“谢谢,师兄!”周青感激地点了点头,突然接着问:“师兄,在命令执行的时候,出现“userwarningunknowndistributionoption'definemacros'”这个警告是怎么回事?我遇过很多次了。”
“这个问题可能是你的setuptools版本太低造成的,你可以先升级一下:pipinstall--upgradesetuptools,再pipinstallnumpy,……。”谢嘉鸿想了一下,回答道。
“哦!原来是这样!谢师兄,”周青恍然大悟,接着,指着编程某处异常,问:“那这里是怎么回事,我只改了A.x,为什么C.x也改了?”
“嗯,在Python中,类变量在内部当做字典来处理,其遵循常被引用的方法解析顺序(MRO)。所以在这些代码中,由于classC中的x属性没有找到,它会向上找它的基类,换句话说,classC中没有它自己的x属性,其独立于A。因此,C.x事实上是A.x的引用,所以会造成这样的情况,你只要……。”谢嘉鸿顺着周青指点的地方看去,连忙解释。
“明白了,谢师兄,再问你个Python作用域的问题,……。”周青眼睛一亮,点了点头,继续问。
“……。”谢嘉鸿皱眉思考起来。
周青问题不断,一个接着一个,谢嘉鸿耐心十足,详细解答。
时间一点一滴地流逝,转过半个多小时过去。
张思雅站在一旁,呆呆地看着他们,渐渐地感觉谢嘉鸿有些疲于应付,有些力不从心了。
“当迭代的时候,从一个列表(List)或者数组中删除元素,对于有经验的开发者,这是一个非常明显的错误,……,Python包含大量简洁的编程范例,若使用得当,将大大简化和精炼代码……,差不多就是这样,你还什么疑问?”谢嘉鸿看着周青,有些沉不住地回答。
“谢谢,师兄,我没问题了!”周青感激地点了点头。
“嗯!那就这样吧!”谢嘉鸿登时松了口气。
连着被周青一连问了十几个问题,虽然都是基础方面的知识,不过,问题都很有代表性,随着问题不断深入,有些知识谢嘉鸿都快忘了。
还好结束了!
谢嘉鸿暗暗为自己捏了把冷汗,转过身去,有点想要远离周青了。
见谢嘉鸿准备带着张思雅就要离去,周青连忙留人道:“张师姐,我有个设计项目恰好涉及了微电子方面的知识,需要您指点一下!”
闻言,谢嘉鸿,张思雅身体一顿,不由停下了脚步。
“嗯,你有什么问题呢?”张思雅笑吟吟地看着周青,笑容有些僵硬地问。
对上周青的目光,张思雅心里七上八下地直打鼓,这个大二学弟一点都不简单,谢师兄差点都被他问倒了,自