• 类成名和命名空间


    类成员和命名空间

    class A:
        Country = '中国'   #静态变量/静态属性 储存在类的命名空间里
        def __init__ (self,name,age):   #绑定方法 储存在类的命名空间里面
            self.name = name
            sele.age = age
        def func1(self):
            print(self)
        def func2(self):pass
        def func3(self):pass
        
    a = A('alex',83)
    print(a.name)
    print(a.Country)
    
    类中的变量是静态变量
    对象中的变量只属于对象本身,每个对象有属于自己的空间来储存对象的变量
    当使用对象名去调用某一个属性的时候会优先在自己的空间去寻找,找不到再去对应的类中寻找
    如果自己没有就引用类的,如果类也没有就报错
    对于类来说,类中的变量所有的对象都是可以读取的,并且读取的是同一份变量
    
    

    类中的静态变量的用处

    如果一个变量是所有的对象共享的值,那么这个变量应该被定义成静态变量

    所有和静态变量相关的增删改查都应该使用类名来处理

    而不应该使用对象直接修改静态变量

    组合

    1. 一个类的对象是另一个类对象的属性
    #练习
    #对象变成了一个属性
    班级类包含一个属性 - 课程
    课程包含课程名称 周期 价格
    
    创建两个班级 linux57  python22期
    查看Linux57期的班级所学课程的价格
    查看python22期的班级所学课程的周期
    
    class Clas:
        def __init__(self,cname,begint,teacher):
            self.cname = cname
            self.begint = begint
            self.teacher = teacher
    class Course:
        def __init__(self,name,period,price):
            self.name = name
            self.period = period
            self.price = price
    py22 = Clas('python全栈22期','2019-4-26','小白')
    linux57 = clas('linux运维57期','2019-4-26','李导')
    prthon = Course('python','6 months',21800)
    linux = course('linux','6 months',19800)
    py22.course = python
    linux57.course = linux
    print(py22.course.period)
    print(linux57.course.price)
    
    

    当类之间有显著不同,并且较小的类是较大的类所需的组件时,用组合比较好

  • 相关阅读:
    RFID基础知识
    iOS开发技巧:使用ObjectiveC创建UUID的代码
    Java获取当前路径
    Oracle 10g 一些事项
    windows 2003 下IIS没有ASP.NET 1.1.4322选项卡
    Windows下手动完全卸载Oracle
    C#如何检测网络端口连接的状态
    windows 2003 下oracle从10.2.0.1升级到10.2.0.4
    Oracle 获取当前日期及日期格式
    Retrieving COM for CLSID {0002450000000000C000000000000046} 80040154.
  • 原文地址:https://www.cnblogs.com/wang-xing-hao/p/11172692.html
Copyright © 2020-2023  润新知