我与Python的相爱相杀-类与对象

面向对象(oop):继承、封装、多态
  • #创建类:类的命名规则是 首字母大写,驼峰式
class Foo:  #Foo 为关键字表示要创建的类的名称
#创建类中的函数
def Bar(self):
#do something
pass
obj = Foo()#根据类创建对象
  • #调用函数
obj.Bar()


class ADC :
def xiadan(self):
print("吾单三路尔等野")
def zhongdan(self):#self表示对象本身
pass

luban = ADC()

luban.xiadan()
  • #对象的封装
class foo:
def __init__(self,name,age,active):#构造函数
self.name = name
self.age = age
self.active = active
def aaa(self):
pass
def jianjie(self):
print(self.name)
print(self.age)
print(self.active)
obj1 = foo("鲁班",230,"run")#实例化对象
obj1.aaa("run")
print(obj1.active)
print(obj1.age)

#间接调用方法
obj1.jianjie()
  • 对象的继承
class 父类:
def 父类中的方法(self):
#do something
#子类继承父类中的方法,当然就可以调用父类的方法
class 子类(父类):
def 子类中的方法(self):
#do something
# 一个子类可以继承多个父类
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class Parent: # 定义父类
  parentAttr = 100
  def __init__(self):
    print "调用父类构造函数"
  def parentMethod(self):
    print '调用父类方法'
  def setAttr(self, attr):
    Parent.parentAttr = attr
  def getAttr(self):
    print "父类属性 :", Parent.parentAttr
class Child(Parent):
  def __init__(self):
    print "调用子类构造方法"
  def childMethod(self):
    print '调用子类方法'
cobj = Child() # 实例化子类
cobj.childMethod() # 调用子类的方法
cobj.parentMethod() # 调用父类方法
cobj.setAttr(200) # 再次调用父类的方法 - 设置属性值
cobj.getAttr() # 再次调用父类的方法 - 获取属性值

输出结果
调用子类构造方法
调用子类方法
调用父类方法
父类属性 : 200

多态

多态:同一种事物的多种形态,动物有人类,猪类,狗类等(在定义角度),
多态性:一种调用方式,不同的执行效果(多态性)
posted @ 2018-04-13 21:23  弟弟救我啊  阅读(152)  评论(0编辑  收藏  举报