Python课堂筆记【第十期丨面向对象】( ̄o ̄)

– 乌拉: Python程序设计 【萨大·懒人笔记】


面向对象编程:

一、面向对象的三大特性:

  • 封装、继承、多态

二、定义类变量与实例变量,以及这两种变量在使用时的注意事项:
1、 包中必须包含__init__.py,包中的模块才能被调用。
2、实例变量是与实力对象绑定的变量。只有创建了实例对象后,实例变量才有意义。
3、实例变量是在类方法中定义的,通常是在__init__()方法中定义。
4、实例变量也可以在其他非__init__()方法中定义。
5、实例变量还可以在实力对象创建后,动态的创建
– ①在类方法中创建实例对象的方法:
self.实例变量名 = 变量值
– ②使用实例对象动态创建实例对象的方法:
实例对象名.实例变量名 = 变量值

注意:因为实例变量创建语法非常灵活,所以使用时要格外小心,一定要先创建实例变量,再使用实例变量。
如果是所有实例对象都会具有的变量,一定要定义在__init__()方法中


三、#Eg0:设计Bird、fish类,都继承自Animal类,实现其方法print_info(),输出信息。


class Animal():
    def __init__(self,age):
        self.age = age
    def print_info(self):
        print("我今年%d岁了!" % (self.age))
class Bird(Animal):
    def __init__(self, color):
        super().__init__(4)
        self.color = color
    def print_info(self):
        print("我是一只%s的鸟" % (self.color))
        super().print_info()
class Fish(Animal):
    def __init__(self, weight):
        super().__init__(2)
        self.weight = weight
    def print_info(self):
        print("我是一只%d斤重的鱼" % (self.weight))
        super().print_info()
bird = Bird("红色")
bird.print_info()
fish = Fish(5)
fish.print_info()
    

3、#Eg1: 利用多态性,编程创建一个手机类Phones,定义打电话方法call()。创建两个子类:苹果手机类iPhone和Android手机类APhone,并在各自类中重写方法call。创建一个人类Person,定义使用手机打电话的方法use_phone_call()


class Phone():
    def call(self):
        print("使用功能机打电话")
class IPhone(Phone):
    def call(self):
        print("使用苹果手机打电话")
class APhone(Phone):
    def call(self):
        print("使用安卓手机打电话")
class Person():
    def use_phone_call(self, phone):
        phone.call()
person = Person()
person.use_phone_call(Phone())
person.use_phone_call(IPhone())
person.use_phone_call(APhone())


4、#Eg2:设计一个简单的购房商贷月供计算器类,按照以下公式计算总利息和每月还款金额:
总利息=贷款金额*利率
每月还款金额 = (贷款金额+总利息)/贷款年限
贷款年限不同利率也不同,这里规定只有如表8-2所示的3种年限、利率。

年限利率
3年(36个月)6.03%
5年(60个月)6.12%
20年(240个月)4.39%

class LoanCaculator():
    def __init__(self, loan, time):
        self.loan = loan
        if time == "1":
            self.time = 3
        elif time == "2":
            self.time = 5
        elif time == "3":
            self.time = 20
    def get_total_interests(self):
        return self.loan * self.get_interests_rate()
    def get_interests_rate(self):
        if self.time == 3:
            return 0.0603
        elif self.time == 5:
            return 0.0612
        elif self.time == 20:
            return 0.0639
    def get_monthly_payment(self):
        return (self.loan + self.get_total_interests()) / (self.time * 12)

loan = int(input("请输入贷款金额:"))
time = input("请选择贷款年限:1.3年(36个月) 2.5年(60个月) 3.20年(240个月)")
loan_caculate = LoanCaculator(loan, time)
print("月供为:%f" % loan_caculate.get_monthly_payment())


– 关于 笔记内容 内容,参考 《AI盒子里の猫·懒人笔记》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值