Python学习——第三课进阶语法(三)

一、进阶语法学习

        Python是一种面向对象的语言,所以今天学习它的面向对象思想。在Python中,有一句话叫作“一切皆对象”。

# Python也是一种面向对象的程序语言
"""
# 定义格式:
# class 类名(父类):
#   属性
#   方法
# 注意类名必须大写
"""
class Bank():
    title = "招商银行"
    def motto(self):
        return "宾至如归"

# 操作类的属性与方法
# 格式:
#   对象.属性
#   对象.方法
bank = Bank()
print(bank.title)
print(bank.motto())

# 类的构造方法__init__(self)
class Bank():
    title = "招商银行"
    def __init__(self,user_name,balance):
        self.name = user_name
        self.money = balance

    def get_money(self):
        return self.money

    def motto(self):
        return "宾至如归"

bank1 = Bank("hanli",10000)
print(bank1.name,f"您的存款余额为{bank1.money}")

# 类的封装
class Bank():
    def __init__(self,username):
# 属性私有化
        self.__rate = 30
        self.__service = 0.01
        self.name = username
        self.__money = 0
        self.__title = "招商银行"
# 方法私有化
    def __charge(self,dolor):
        return int(dolor*self.__rate*(1-self.__service))
    def get_money(self,money,name):
        self.__money = money
        self.name = name
"""
# 解释说明
# 私有化,直接在属性和方法前面加__就可以了
# 经过私有化后,类的属性无法被外部修改
"""

# 类的继承
# Python中的继承和C++差不多,它也可以多继承
class New_bank(Bank):
    pass
new_bank = New_bank("zx")
new_bank.get_money(1000,"zx")

"""
# 解释说明
# 子类继承父类,如果有方法重名,调用时以子类中的方法为主,
# 如构造方法__init__,子类没有时,再去找父类的方法。
# pass后面可以继续写,不会影响后面的程序。
"""

# 类的多型
# 相同的函数名,放入不同的参数会得到不同的结果,从而完成功能的多样化
class Animal:
    def __init__(self,animal_name):
        self.name = animal_name
    def which(self):
        return "The animal "+self.name.title()
    def action(self):
        return "sleeping"

class Cat(Animal):
    def __init__(self,cat_name):
        # 子类调用父类的方法
        super().__init__(cat_name.title())
    def action(self):
        return "running in the room"

class Monkey:
    def __init__(self,monkey_name):
        self.name = "猴子"+monkey_name.title()
    def which(self):
        return self.name
    def action(self):
        return "running in the forset"

def doing(obj):
    print(obj.which(),"is",obj.action())

animal = Animal("哈哈")
print(animal.name)

# Python支持多继承
# 定义格式:
# class 类名(类名1,...)
class A:
    pass
class B:
    pass
class C:
    pass
class D(A,B,C):
    pass

"""
# 解释说明
# D同时继承了A,B,C三个父类
# 多继承解决了功能的全面性
"""

# type和instance
# type方法查看一个对象的类型
# instance方法判断一个对象是否属于一个类
# 使用格式:type(对象名);instance(对象,类)

# 类的特殊属性或方法
# 对象.__doc__可以获取函数说明的文档信息
if __name__ == '__main__':
      pass
# __name__代码自己执行,主程序就是main,如果是导入去其他包,就不是main

# __str__()可以返回易读取的字符串
# __repr__()可以返回指定格式的字符串,可以自定义,它和__str__()差不多

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值