zoukankan      html  css  js  c++  java
  • day6 类

     1 #定义一个类
     2 
     3 class Person: #老式类
     4     pass
     5 
     6 class Person(object):#新式类 主要区别是多继承老式类是深度查找 新式类是广度查找
     7 
     8     money = 1500 #类变量  用用途大家共用的属性 节省内存开销
     9     def __init__(self,name,age):
    10         #构造函数  在实例化的时做一些初始化的工作  比如:传参
    11         self.name = name
    12         self.age = age
    13 
    14     def __del__(self):
    15         #在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作, 如关闭一些数据库连接,关闭打开的临时文件
    16         pass #print("%s 要挂了...")
    17 
    18     def eat(self):
    19 
    20         print('%s出生就可以吃东西'%self.name)
    21 
    22     def sleep(self):
    23 
    24         print('$s出生就可以睡觉'%self.name)
    25 
    26 r1 = Person('xiaoming','23') #在实例化的时会自动运行类里面的init方法 所以就这个时必须得传两个参数
    27 
    28 r1.name #调用属性
    29 
    30 r1.name = 'laozhang' #修改实例属性
    31 
    32 r1.money  #用实例的对象来调类属性  注意不能用实例对象来做修改
    33 
    34 Person.money #用类名来调用类属性 可以直接修改

    继承

     1 class Person(object):
     2     def __init__(self,name,sex):
     3 
     4         self.name = name
     5         self.sex = sex
     6 
     7     def eat(self):
     8 
     9         print('%s 出生的时候是 %s' %(self.name,self.sex))
    10 
    11 class Relation(object):
    12     # def __init__(self,n1,n2):
    13     #     print("init in relation")
    14     def make_friends(self,obj): #w1
    15         print("%s is making friends with %s" % (self.name,obj.name))
    16 
    17 #在python3 里面是广度查找  python2是深度查找
    18 class man(Relation,Person): #多继承 注意前后顺序  主要是init初始化需要用到的属性
    19 
    20     def piao(self):
    21 
    22         print('$s会piao'%self.sex)
    23 
    24 class woman(Person):
    25     #重构父方法
    26     def __init__(self,name,sex,mony):
    27         #Person.__init__(self,name,sex)  #老式写法
    28         super(woman,self).__init__(name,sex) #新式写法
    29         self.mony = mony
    30 
    31     def birth_child(self):
    32 
    33         print('%人会生孩子'%self.sex)
    34 
    35 m = man('xiao','男人')
    36 
    37 w = woman('xiaodhong','女人',1500)
    38 print('%s name %s sex %smony'%(w.name,w.sex,w.mony))
    39 
    40 m.make_friends(w) 

    多态

    class Person(object):
        def __init__(self,name):
            self.name = name
    
        @staticmethod    #在父类方法里面实现多态
        def sleep(obj):
            obj.sleep()
    
    class man(Person):
    
        def sleep(slef):
            print('%s会睡觉'%slef.name)
    
    class woman(Person):
    
        def sleep(self):
            print('%s会1睡觉'%self.name)
    
    m = man('man')
    
    w = woman('woman')
    
    #多态一种接口,多种实现
    Person.sleep(m)
    Person.sleep(w)
  • 相关阅读:
    机器人学 —— 轨迹规划(Artificial Potential)
    机器人学 —— 轨迹规划(Sampling Method)
    机器人学 —— 轨迹规划(Configuration Space)
    机器人学 —— 机器人感知(Kalman Filter)
    机器人学 —— 机器人感知(Gaussian Model)
    机器学习 —— 概率图模型(Homework: Structure Learning)
    机器人学 —— 机器人视觉(Bundle Adjustment)
    机器人学 —— 机器人视觉(极几何)
    机器学习 —— 概率图模型(Homework: CRF Learning)
    机器人学 —— 机器人视觉(估计)
  • 原文地址:https://www.cnblogs.com/qq769080870/p/8532884.html
Copyright © 2011-2022 走看看