OOP跟我来
世界一切 归于尘土
all is object
两大杀手锏:对象 类
三大武器:封装;继承;多态
#!/usrself=Nonepython # -*- coding: utf-8 -*- # @File : people.py # @Author: wmy # @Date : 2018/1/21 class Person: aera = '地球' def __init__(self,name,age): self.name = name self.age = age def display_info(self): print(" -->%s已经%d岁,"%(self.name,self.age)) print("现住在%s..."%self.aera) p1 = Person('zhangsan',20) p1.display_info()
以上给出了一个简单的类,其中p1为实例对象。
添加属性:
p1.sex = 'male'
打印结果如下:
-->zhangsan已经20岁, 现住在地球... male
python很容易对类的属性进行操作。
现在构造第二个对象:
p2 = Person('张天',40) p2.display_info()
输出结果如下:
-->张天已经40岁, 现住在地球...
公共类变量:节省存储空间
继承如下
class Teacher(Person): def __init__(self,name,age,school): Person.__init__(self,name,age) self.school = school def display_info(self): Person.display_info(self) print('%s在%s学校任职'%(self.name,self.school))
通过类似公共接口的父类info函数,实现多态。这是Java不能如此简单实现的。
class Person: aera = '地球' def __init__(self,name,age): self.name = name self.age = age def display_info(self): print(" -->%s已经%d岁,"%(self.name,self.age)) print("现住在%s..."%self.aera) @staticmethod def info(obj): obj.display_info() class Teacher(Person): def __init__(self,name,age,school): Person.__init__(self,name,age) self.school = school def display_info(self): Person.display_info(self) print('%s在%s学校任职'%(self.name,self.school)) class Doctor(Person): def __init__(self,name,age,medicine): Person.__init__(self,name,age) self.medicine = medicine def display_info(self): Person.display_info(self) print('%s在%s医院任职'%(self.name,self.medicine)) t = Teacher('马玉',20,'第二中学') d = Doctor('赵慎',34,'华西医院') t.display_info() d.display_info() print('-------------------------') p = Person('福清',40) p.info(t) p.info(d)
结果如下:
-->张丹已经20岁, 现住在地球... 张丹在第二中学学校任职 -->扑打已经34岁, 现住在地球... 扑打在华西医院医院任职 ------------------------- -->张丹已经20岁, 现住在地球... 张丹在第二中学学校任职 -->扑打已经34岁, 现住在地球... 扑打在华西医院医院任职
小编带领大家学习了一下Python,这种语言面向编程相对Java和C++来说。简单许多哟!