美文网首页工作生活
python三大特性

python三大特性

作者: 从小白到全栈 | 来源:发表于2019-07-07 15:00 被阅读0次

python中也有三大特性,封装、继承和多态。

封装

封装,就是只能在类的内部访问,外部访问属性或方法会报异常,python中的封装很简单,只要在属性前或者方法名前加上两个下划线就可以,如self.__name,def __eat(self)这样就完成了属性和方法的私有化,也就是封装。

在python中封装并不是很安全,有一个方法可以从外部访问到私有属性和方法,使用_类名__私有属性或方法,如有一个Card类,下面有一个私有属性密码__pwd,print(_Card__pwd)这样就可以获取到卡类下面的私有属性密码的值了。要做一些安全的项目,不建议使用python。

继承

python中继承也非常简单,定义一个Animal类,下面有一个eat()方法,再定义一个Dog类,Dog类中什么都不写,用pass代替。然后实例化一个dog,让dog继承Animal类,dog可以使用eat()方法。

class Animal(obiect):

    def __init__(self,name)

        self.name = name

    def eat(self):

        print(self.name,"吃饭")

class Dog(Animal):

    pass

dog=Dog("旺财")

dog.eat()

如果子类中的方法与父类中的方法重名,优先调用子类中的方法,如果父类中有color属性,子类中有name和age属性,子类又想使用父类中的color属性,那么可以使用super这个关键字

class Animal(object):

    def __init__(self,color):

         self.color=color

    def eat(self):

        print("吃饭")

class Dog(Animal):

    def __init__(self,name,age,color):

        super(Dog,self).__init__(color)#调用父类的初始化方法

        self.name=name

        self.age=age

dog = Dog("小黑",2,"白色")

print(dog.name,dog.age,dog.color)

多态

python中本质上是没有真正多态这种思路,只是形式上有这样一个多态的思路,下面看下例子

class Animal(object):

    def __init__(self,color):

        self.color=color

    def eat(self):

        print("吃饭")

class Cat(Animal):

    def eat(self):

        print("猫吃鱼")

class Dog(Animal):

    def __init__(self,name,age,color):

        super(Dog,self).__init__(color)

        self.name=name

        self.age=age

    def eat(self):

        print("狗吃肉")

def feed(obj):

    obj.eat()

an=Animal("白色")#实例化Animal

cat=Cat("棕色")#实例化Cat

dog=Dog("小黄",2,"黄色")#实例化Dog

feed(dog)

定义了一个Animal父类,两个子类Cat和Dog里面都有eat()方法,最后再定义一个feed()喂养方法,传入一个obj对象,调用obj.eat(),然后实例化Animal,Cat和Dog,分别在feed中传入实例化对象an,cat和dog会分别打印出不同的语句,这个就是python中的多态。

相关文章

  • 精心整理的8道Python面试题,你答不答的出来

    来源 | 菜鸟学Python NO.1 Python这么好 说说它的特性吧 关键特性 Python是一种解释型语言...

  • Python特性概要

    一、python特性概要1、python是解释型语言,我们和c对比一下2、python特性总结:字节码,动态,缩进...

  • python3新特性(二) 一些小改动合集

    Python新特性合集 本片文章将集中介绍5个python3的新特性,由于每个特性的改动比较小,所以放到一个合集里...

  • python3新特性(三) 一些小改动合集

    Python新特性合集续 承接上一篇,本片文章将继续介绍一批python3的新特性,由于每个特性的改动比较小,所以...

  • 常用数据结构和算法汇总

    Python List as belowPython语言特性1 Python的函数参数传递2 Python中的元类...

  • python特性

    学习一门新语言必须先了解其特性,每种语言有很多相似之处,我们从特性入手学习更快。 Python作为数据科学中最重要...

  • python特性

    Python3.8 海象运算符:= fstring增强 函数增强/和* Python3.9 字典合并 字典更新 字...

  • Python入门

    Python3教程 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 ...

  • interview_python

    Python语言特性1 Python的函数参数传递2 Python中的元类(metaclass)3 @static...

  • Python 数据类型

    Python 介绍 Python 特性 1、python 语法简单,容易理解,容易学习 2、跨平台,可在windo...

网友评论

    本文标题:python三大特性

    本文链接:https://www.haomeiwen.com/subject/vktthctx.html