zoukankan      html  css  js  c++  java
  • 类成名和命名空间

    类成员和命名空间

    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)
    
    

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

  • 相关阅读:
    [HNOI2002]营业额统计
    HDU 1374
    HDU 3345
    HDU 2089
    Graham扫描法
    Codeforces 1144D Deduction Queries 并查集
    Codeforces 916E Jamie and Tree 线段树
    Codeforces 1167F Scalar Queries 树状数组
    Codeforces 1167E Range Deleting
    Codeforces 749E Inversions After Shuffle 树状数组 + 数学期望
  • 原文地址:https://www.cnblogs.com/wang-xing-hao/p/11172692.html
Copyright © 2011-2022 走看看