最近又不顾正业了,在尝试使用Python开发一个小工具,前几天一直纠结目录间的调用问题。通过查找一些资料和瞎猫碰死耗子的精神。解决了!哇哈哈!昨天按照进度,开发model层。可能是以往的思路的局限,所以涉及到类的继承与实现。今天按照另一种的方式去实现。

    常规思路,代码如下:

#!F:/python/python

class school(object):
	"""docstring for school"""
	def __init__(self, name,age):
		super(school, self).__init__()
		self.name = name
		self.age = age
	def showMessage(self):
		return ("用户名:%s;密码:"% self.name,self.age)


class teacher(school):
	"""docstring for teacher"""
	def __init__(self, name,age,sex):
		#super(teacher, self).__init__()
		school.__init__(self,name,age)
		self.sex = sex
	
	def showMessage(self):
		print(school.showMessage(self))
		print(';性别:'+self.sex)		
		
obj=teacher('willa',18,'female')
obj.showMessage()

    效果如下:

wKioL1RsZmLT7nkNAACexXoEEIk036.jpg


    写到这里网上其他同仁都是按照这个思路讲解类的继承。可能是开发习惯不同,在一个文件中写两个class总感觉怪怪的。下一步文件拆分。

    目录结果:

    Python 面向对象开发(二)类继承_第1张图片



    ObjectCode.py 代码如下:

    

#!F:/python/python

class school(object):
	"""docstring for school"""
	def __init__(self, name,age):
		super(school, self).__init__()
		self.name = name
		self.age = age
	def showMessage(self):
		return ("用户名:%s;密码:"% self.name,self.age)

    Teacher.py 代码如下:

#!F:/python/python
import ObjectCode
class teacher(ObjectCode.school):
	"""docstring for teacher"""
	def __init__(self, name,age,sex):
		#super(teacher, self).__init__()
		ObjectCode.school.__init__(self,name,age)
		self.sex = sex
	
	def showMessage(self):
		print(ObjectCode.school.showMessage(self))
		print(';性别:'+self.sex)		
		
obj=teacher('willa',18,'female')
obj.showMessage()

    执行结果与上面的效果相同。拆分文件成功。