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)
    
    

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

  • 相关阅读:
    并查集 示例 : poj 1703 [Find them, Catch them 帮派之争]
    《Python 第五章》条件,循环和其他语句
    《Python 第一章》基础知识
    heapSort 堆排序 / 二叉堆
    并查集 hdu 1856 示例
    KMP / hdu 1711 [找到匹配的位置并返回]
    《Python 第四章》字典
    EnumChildWindows的使用
    C#查找指定窗口的子窗口的句柄
    C#里字符串取左边N个字符,右边N个字符,从中间取N个字符的函数
  • 原文地址:https://www.cnblogs.com/wang-xing-hao/p/11172692.html
Copyright © 2011-2022 走看看