本文目录一览:
Python 运行报错NameError出现原因,怎么解决
python程序,报错NameError: name XX is not defined 是没有声明造成的,需要在文件的前两行进行声明编码,声明方法为:
1、写一个python文件,文件中有中文字符,且未声明编码。
2、当程序文件中,存在中文字符时候,文件未声明编码格式就会出现报错信息: File "encode.py", line 1SyntaxError:
Non-ASCII character '\xe7' in file encode.py on line 1, but no encoding
declared; see //..python.../dev/peps/pep-0263/ for details for details。
3、根据错误提示,在python官网得到如下帮助信息。
4、所以,按照帮助文档的提示以及例子,在Python文件中加入一个编码声明。
5、保存之后,再次运行,运行成功。
python 继承
可能你有C++的基础吧,C++确实可以不用带上this。我把你的代码稍微改了一下,你可以分别看看cls1.n、cls2.n、self.n的输出。 class cls1: n=3 class cls2(cls1): def __init__(self,cls1=cls1): cls2.n += 1 self.n += 2 print 'cls1.n:%s'%cls1.n print 'cls2.n:%s'%cls2.n print 'self.n:%s'%self.n cls2() print 'cls1.n:%s'%cls1.n 可以看出两个类和一个对象都可以在这里调用它们的n属性,如果只敲一个n别人读你的代码时就比较容易产生岐义,虽然少打了5个字符,但是不符合简单明确的pythonic哲学。当然你也可以就认为python语法规则就是这么规定的。
python提供了一些异类常类,所有的异常都是什么类的成员?
BaseException这个类包含所有的错误类,
继承于BaseException类有Exception、SystemExit、KeyboardInterrupt、GeneratorExit、StopIteration、StandardError等错误类,还有Warning、DeprecationWarning、PendingDeprecationWarning、RuntimeWarning、SyntaxWarning、UserWarning等警告类。
所有的这些从根本上来说,都是BaseException