本人python新手,现在在看python基础教程,这几天敲了一下后面的项目5,出现了很奇怪的错误,大神帮看看
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本人python新手,现在在看python基础教程,这几天敲了一下后面的项目5,出现了很奇怪的错误,大神帮看看相关的知识,希望对你有一定的参考价值。
希望大神们给看看,谢谢!!!
python版本2.7.3
错误如下:
error: uncaptured python exception, closing channel <__main__.ChatServer listening :5000 at 0xb74c820c> (<type 'exceptions.AttributeError'>:ChatSession instance has no attribute 'set_teminator' [/usr/lib/python2.7/asyncore.py|read|83] [/usr/lib/python2.7/asyncore.py|handle_read_event|443] [ChatServer.py|handle_accept|143] [ChatServer.py|__init__|104] [/usr/lib/python2.7/asyncore.py|__getattr__|421])
error: uncaptured python exception, closing channel <__main__.ChatSession connected 127.0.0.1:35502 at 0xb70ef4ec> (<type 'exceptions.AttributeError'>:ChatSession instance has no attribute 'terminator' [/usr/lib/python2.7/asyncore.py|read|83] [/usr/lib/python2.7/asyncore.py|handle_read_event|449] [/usr/lib/python2.7/asynchat.py|handle_read|124] [/usr/lib/python2.7/asynchat.py|get_terminator|100] [/usr/lib/python2.7/asyncore.py|__getattr__|421])
Traceback (most recent call last):
File "ChatServer.py", line 148, in <module>
try: asyncore.loop()
File "/usr/lib/python2.7/asyncore.py", line 216, in loop
poll_fun(timeout, map)
File "/usr/lib/python2.7/asyncore.py", line 156, in poll
read(obj)
File "/usr/lib/python2.7/asyncore.py", line 87, in read
obj.handle_error()
File "/usr/lib/python2.7/asyncore.py", line 503, in handle_error
self.handle_close()
File "ChatServer.py", line 128, in handle_close
self.enter(LogoutRoom(self.server))
File "ChatServer.py", line 114, in enter
Room.add(self)
TypeError: unbound method add() must be called with Room instance as first argument (got ChatSession instance instead)
Room().add()
当然,只是一个比喻,具体怎么样改,还要看你的程序。
Room是一个类,除非它有特殊的方法。否则不能使用Room.add这样的方法,在python不让。
你可以先实例化Room,比如Room(),然后在这个实例上就可以使用权Room().add()
此外你Room.add(self)里的self显然不是Room实例,否则也许能成功。追问
我把代码改成Room().add()和room.add()但是还都是不对呢,您能帮忙看看代码么?
追答==这两天忙着跑步的事情。今天刚弄完。你很耐心。
代码写得很棒。
似乎你大小写弄错了。Room.add(self)改成room.add(self)应该就对了。
是114行的那个么,那个我改了还是不对,会不会是版本的问题啊?
不过很谢谢您的回答!
加油。如果还解决不了,就尝试。或者是开启调试器,单步调到指定的位置,然后查看堆栈。
因为逻辑设置的太复杂,不太适合做单元测试。所以我们很少这样设计一个复杂的结构。
而是一开始先加一些逻辑,很多函数设为空,然后一步一步的加逻辑,加上一层就调试一下。这样速度反而快。
self这个参数不用自己写入参数中的,调用方法的时候。 参考技术B 把self.set_terminator('\r\n')改成self.set_terminator(b'\r\n')
你原来的代码'\r\n'是一个str,但se_terminator里实际需要的是byte类型的。这个跟python的版本有关,你的代码在老的2.5版本应该是没有问题的。
超适合小白的python新手教程
python介绍
这是我们专门为 小白 量身打造的Python新手教程,具有如下特点:
全视频,手把手,零起点,项目实例,基于船新的Python 版本。
Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合网页编程的JavaScript语言等等。
那Python是一种什么语言?
首先,我们普及一下编程语言的基础知识。编程语言就是和计算机交流的语言,目的是让计算机完成各项任务,例如打开一个视频,从网页上抓取特定的信息。不同的编程语言,完成同一个任务,编写的代码量,差距也很大。
比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而 Python可能只要20行。
所以Python是一种 相当高级的语言。
那么用Python可以做什么?可以做日常任务,比如处理excel文档;比如在网页上抓取你需要统计的数据;可以做网站,很多著名的网站包括YouTube就是Python写的。Python是一种全栈的开发语言,所以你如果能学好Python,那么前端,后端,测试,大数据分析,爬虫等这些工作你都能胜任。
如果你是小白用户,满足以下条件:
- 会使用电脑,但从来没写过程序;
- 还记得一点点初中数学学的数学知识;
- 想从编程小白变成专业的程序猿;
- 每天能抽出半个小时学习。
不要再犹豫了,这个教程就是为你准备的!
超适合小白的python新手教程
最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台: 78486745 ,欢迎大家加入共同交流学习。
本套教程学习时间15天
第一阶段(1-8天)
该阶段我们正式进入Python这门语言的学习,首先通过了解Python语言的起源,Python语言的设计目标,Python语言的设计哲学,Python语言的优缺点和面向对象的基本概念,以及Python语言的执行方式,还有Python集成开发环境PyCharm的使用为我们接下来的学习做铺垫。
然后我们会学习int,string,float三种简单的变量类型,变量间的计算,变量的输入输出,if判断语句,while循环语句,for循环语句,break和continue的使用,函数的基本使用,模块的使用,列表,元组,字典三种高级变量,字符串的常用操作。
最后我们会学习语法的进阶内容,全局变量,局部变量,可变数据类型和不可变数据类型以及函数返回多个值,函数的缺省参数,多值参数,递归的基本使用。
第二阶段(9-12天)
该阶段我们会学习面向对象(OOP)这一重要的编程思想,首先学习的知识点有类和对象的基本概念,dir函数,self的作用,初始化方法__init__,内置函数__str__,del,单继承,方法重写,私有属性和方法,多继承,多态,类属性,静态方法。
然后我们还会学习单例模式这一设计模式,异常的捕获,异常的抛出,from import局部导入,from import导入同名工具, from import导入所有工具,包的使用,制作模块,pip的使用以及文件的相关操作。
第三阶段(13-15天)
该阶段是项目演练阶段,我们会带领大家通过使用之前学习过的知识开发飞机大战这一经典游戏,项目中分别有游戏窗口,图像绘制,游戏循环,事件监听,精灵和精灵组以及创建敌机,创建英雄和发射子弹,碰撞检测等模块。
需要教程的可以关注我哦~
Python入门教程完整版(懂中文就能学会)
http://space.bilibili.com/43443400
以上是关于本人python新手,现在在看python基础教程,这几天敲了一下后面的项目5,出现了很奇怪的错误,大神帮看看的主要内容,如果未能解决你的问题,请参考以下文章