zoukankan      html  css  js  c++  java
  • day23_类的进阶

    类里 可以定义两种属性
    静态属性
    动态属性
    class Course:
        language = 'Chinese'
        def __init__(self,teacher,course_name,period,price):
            self.teacher = teacher
            self.name = course_name
            self.period = period
            self.price = price
        def func(self):
            pass
    
    Course.language = 'English'     #可以依次修改静态属性
    print(Course.language)
    python
    = Course('egon','python','6 months',20000) linux = Course('oldboy','linux','6 months',20000)
    print(python.language)      #实例化对象也可以访问静态属性
    print(linux.language)

    类中的静态变量 可以被对象和类调用
    对于不可变数据类型来说,类变量最好用类名操作
    对于可变数据类型来说,对象名的修改是共享的,重新赋值是独立的

    -------------------------------------------------------------

    创建一个类,每实例化一个对象就计数
    最终所有的对象共享这个数据

    class Foo:
        count = 0
        def __init__(self):
            Foo.count += 1  # 必须通过类名调用,才能共享数据
    
    f1 = Foo()
    f2 = Foo()
    print(f1.count)-----------2
    print(f2.count)-----------2
    f3 = Foo()
    print(f1.count)----------3

     面向对象的组合:

    组合:在一个类中以另一个类的对象作为数据属性,称为类的组合

    class BirthDate:
        def __init__(self,year,month,day):
            self.year=year
            self.month=month
            self.day=day
    
    class Couse:
        def __init__(self,name,price,period):
            self.name=name
            self.price=price
            self.period=period
    
    class Teacher:
        def __init__(self,name,gender,birth,course):
            self.name=name
            self.gender=gender
            self.birth=birth
            self.course=course
        def teach(self):
            print('teaching')
    
    p1=Teacher('egon','male',                           # 组合
                BirthDate('1995','1','27'),
                Couse('python','28000','4 months')
               )
    
    print(p1.birth.year,p1.birth.month,p1.birth.day)   ------------- 1995 1 27
    
    print(p1.course.name,p1.course.price,p1.course.period)  ---------python 28000 4 months
  • 相关阅读:
    C#基础
    自动化测试
    C# 数据结构题目
    .NET基础知识
    Sharepoint题目
    题目总结2
    数据库索引
    题目总结(2014-1-10)
    Stack详解
    SpringBoot入门基础知识点
  • 原文地址:https://www.cnblogs.com/wzc27229/p/11146136.html
Copyright © 2011-2022 走看看