Python类编写(原创)

来源:百度文库 编辑:神马文学网 时间:2024/03/29 06:45:01
今天开始进行Python类编写的学习,用起来还是比较简单的,Python允许在任何成员函数中声明一个类的成员变量,不过实际开发的时候这种做法不是一个好习惯。个人认为,Python类的成员变量最好是在类的构造函数里面声明并作初始化,然后在其他的成员函数里面使用,这样就不会出现对成员变量作条件判断的时候,由于对该成员声明和初始化的函数没有被调用到,而导致程序出错。
以下是两个简单的例子:
class Wrong:
def __init__(self):
pass
def GetWrong(self):
return self.bIsWrong
def ShowWrong(self):
if self.bIsWrong == True:
print "wrong"
else:
print "right"
def SetWrong(self,bIsWrong):
self.bIsWrong = bIsWrong
错误的调用顺序:
testWrong = Wrong()
testWrong.GetWrong()
testWrong.ShowWrong()
testWrong.SetWrong(True)
运行结果:
E:\>python Wrong.py
Traceback (most recent call last):
File "Wrong.py", line 19, in ?
testWrong.GetWrong()
File "Wrong.py", line 6, in GetWrong
return self.bIsWrong
AttributeError: Wrong instance has no attribute ‘bIsWrong‘
调整一下调用顺序:
testWrong = Wrong()
testWrong.SetWrong(True)
testWrong.GetWrong()
testWrong.ShowWrong()
运行结果:
E:\>python Wrong.py
wrong
问题在哪里,前面已经讲过了,这只是一个简单的程序,还是比较好找原因,如果遇到一个复杂的程序,就不是这么简单了……
如果我们在构造函数中声明初始化成员变量:
class Wrong:
def __init__(self):
self.bIsWrong = True
问题就解决了,随便利用什么调用顺序,都没有问题。
 
 
Posted by农民 at  2006-01-05 21:13 阅读(837)评论(1)引用(0)Python学习
开放权限:所有人可见
引用
http://www.uuzone.com/app/trackBack.do?type=blog&trackBackID=69403
 

相关内容
更多..
用C语言扩展Python的功能
python中内存排列的问题(原创)
介绍一个Python插件(原创)
 
_xyz