复习

1.类定义
函数--方法--动态属性
必须传self
变量--类属性--静态属性
__init__方法--初始化方法
2.实例化
1.使用:对象 = 类()
2.实例和对象没有区别
3.对象调用方法

学习内容

1.类中的静态变量,可以被对象和类调用
2.对于不可变数据类型,类变量最好用类名操作
3.对于可变数据类型,对象名的修改是共享的,重新赋值是独立的
4.认识绑定方法
5.面向对象的三大特性:继承,多态,封装
6.组合: 一个对象的属性值是另一个类的对象

代码区

1.正方形周长和面积

class Square:
    def __init__(self,side_len):
        self.side_len = side_len
    def perimeter(self):
        return self.side_len * 4
    def area(self):
        return self.side_len **2

2.创建一个类,每次实例化时,纪录实例信息

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
class Food:
    catagory = {}
    def __init__(self,kind,calorie):
        self.kind = kind
        self.calorie = calorie
        Food.catagory.setdefault(self.kind, self.calorie)
a1 = Food('carrot',110)
a2 = Food('meat',1000)
print(a1.catagory)
print(Food.catagory)

3.圆环面积周长,组合的方式

from math import pi
class Circle:
    def __init__(self,radius):
        self.radius = radius
    def area(self):
        return self.radius**2*pi
    def perimeter(self):
        return 2*pi*self.radius

class Ring:
    def __init__(self,outside_r,inside_r):
        self.outside_r = outside_r
        self.inside_r = inside_r
        self.outside_c = Circle(outside_r)
        self.inside_c = Circle(inside_r)
    def area(self):
        return self.outside_c.area() - self.inside_c.area()
    def perimeter(self):
        return self.outside_c.perimeter() + self.inside_c.perimeter()
    
r1 = Ring(2,1)

4.老师-生日 类的组合

import time
class Teacher:
    def __init__(self,name,age,birthday):
        self.name = name
        self.age = age
        self.birthday = birthday
        self.course = Course('language',2000)
class Birthday:
    def __init__(self,year,month,day):
        self.year = year
        self.month = month
        self.day = day
class Course:
    def __init__(self,name,price):
        self.name = name
        self.price = price

b1 = Birthday(2111,2,1)
a1 = Teacher('alex', 'Language',b1)
print(a1.birthday.year)
print(a1.course.price)

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄