四、Python三大特性:封装、继承、多态

1.Python三大特性:封装、继承、多态

1.1 封装

a. 隐藏对象的属性和实现细节,仅对外提供公共访问的方式
b. 封装原则==1.将不需要对外提供的内容隐藏起来2.把属性都隐藏,提供共公共方法对其访问;

1.2 继承

a. 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类;
b. 继承分为单继承和多继承,其中多继承以逗号分割;#__base__只查看从左到右继承的第一个子类,__bases__则是查看所有继承的父类;
c. 继承是基于抽象的结果,抽象就是抽取事物的相似之处或者说是比较像的一部分;通过编程语言的实现,肯定先经历抽象,再通过继承的方式表达出抽象的结构;
d. 重用性–子类继承父类后,可以直接使用父类的全部属性(数据属性和函数属性),实现代码层面的重用;
e. 派生–子类重新定义自己的属性与父类属性命名相同,故子类调用新增属性时以子类为准;

1.3 多态

a. 同一类事物多种形态
b. 不同的对象调用同一个函数,产生的不同的行为。老师.下课铃响了()===下班;学生.下课铃响了()===放学啦

针对以上三个状态的场景解释:

以股票买卖为例,股票买卖有个人用户和机构用户的区别;
	封装就是同一封装买和卖的操作方法;
	继承就是个人用户和机构用户都使用封装买和卖的方法
	多态就是个人的买和机构用户的权限不一样,机构买一般权限大于个人,所以机构在继承买卖方法同时;
	还需要对买卖方法进行重写操作实现针对机构买卖的权限不同;
#封装
class Animal:
    def __init__(self):
        self.__name = 'tom' # 私有属性
        self.age = 3
    def __get_name(self):  # 私有方法
        print('name is {:}'.format(self.__name))

    def get_age(self):  # 普通方法可以调用私有属性和方法
        print('{:} age is {:} year'.format(self.__name, self.age))

# 实例化
cat = Animal()
# 调用私有属性
cat.get_age()
# 调用私有方法
cat._Animal__get_name()

# 继承
class Person:
    def __init__(self, name):
        self.name = name

    def say_name(self):
        print("name is {:}".format(self.name))

class Student(Person):
    def __init__(self, name, age):
        Person.__init__(self,name)
        self.age = age


s1 = Student('zhangsan',24)
s1.say_name()


# 多态
import abc
class Animals(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def talk(self):
        pass
    
class Peopel(Animals):
    def talk(self):
        print("say hello")
        
class Dog(Animals):
    def talk(self):
        print("wangwang")

class Pig(Animals):
    def talk(self):
        print('hengheng')
        
dog = Dog()
dog.talk()

参考资料:

https://www.cnblogs.com/peng104/p/9550305.html

https://www.jianshu.com/p/b04c6b0759a9

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值