zoukankan      html  css  js  c++  java
  • Python自学笔记(九)

    #
    #类的创建 :class类名 + 冒号,后面语句要缩进
    #类的属性创建:通过赋值语句(即定义“是怎样的”)
    #实例方法的创建:def + 方法名(self)
    #方法具体的执行过程,即定义“能做什么”
    class Computer():
        #初始化的方法命名 双下划线+init+双下划线 ,实例化对象时,直接调用方法
        def __init__(self):
            print('初始化')
        screen = True
        def start(self):
            print("电脑开机")
    
    #类的调用
    c = Computer()
    print(c.screen)
    #True
    c.start()
    #电脑开机
    
    class A():
        def __init__(self,name):
            self.name=name
        def Day(self):
            print('今天是{}生日'.format(self.name))
        def B(self):
            print('今天是{}'.format(self.day))
    
    a=A('张三')
    a.Day()
    a.day = '星期三'
    #定义a.day属性
    print(a.day)
    a.B()
    #类的继承,让子类拥有父类的所有的方法和属性(遗传),继承后可以定制自己的方法和属性(变异)
    class A():
        name = "张三"
    #class 子类名(父类名)
    class B(A):
        name1 = '王五'
        def __init__(self):
            print(self.name)
    a = A()
    b = B()
    print(b.name)
    #张三
    #张三
    class C(B):
        name = '张三丰'
        name1 = '李四'
    c = C()
    #张三丰
    #B继承了A,C又继承了B,C更改了B的name属性,但是又有B的初始化方法,所以打印了张三丰
    #上面说明了,子类不光可以新增属性,还可以重写父类的属性
    
    #多重继承(拓扑算法,就近原则),这一点比单继承的java好。
    class D(C,A):
        pass
    d = D()
    print(d.name1)
    #如果上面的继承顺序变成D(A,C)会报错,按照拓扑算法排序,目前的排序为D,C,B,A,O,A,O;这样系统就会认为是D<C<B<A<O;
    #如果变成了D(A,C),排序变成了D,A,O,C,B,A,O;系统就分不清B与A,O的大小关系了。(个人见解)
  • 相关阅读:
    ILMerge将源DLL合并到目标EXE
    Nginx+redis的Asp.net
    JwtBearer认证
    Token认证登录以及权限控制
    ES索引
    Linux文本编辑器vim
    集群 安装 配置FastDFS
    When to use next() and return next() in Node.js
    spring-boot-starter-druid
    nodejs express
  • 原文地址:https://www.cnblogs.com/bpjj/p/11882891.html
Copyright © 2011-2022 走看看