python面向对象三大特性,各有什么用处_面向对象语言三大特性

python面向对象三大特性,各有什么用处_面向对象语言三大特性python面向对象三大特性继承,封装,多态1.封装体现在两个方面:将同一类方法封装到了一个类中将数据封装到对象中,在实例化对象时,可以通过__init__初始化方法在对象中封装一些数据,便于以后使用2.继承子类继承父类中的方法和类变量(不是拷贝一份,父类还是属于父类,子类可以继承而已)父类又称基类子类又称派生类classBase:deffunc(self):print(“base”)#Son继承BaseclassSon(Base):

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

python面向对象三大特性

继承,封装,多态

1.封装

体现在两个方面:

  • 将同一类方法封装到了一个类中
  • 将数据封装到对象中,在实例化对象时,可以通过__init__初始化方法在对象中封装一些数据,便于以后使用

2.继承

子类继承父类中的方法和类变量(不是拷贝一份,父类还是属于父类,子类可以继承而已)

  • 父类又称基类
  • 子类又称派生类

在这里插入图片描述

class Base:
    def func(self):
        print("base")
#Son继承Base
class Son(Base):
    def show(self):
        print("son")
s1=Son()
s1.show()
#s1调用func(),自己没有,找父类
s1.func()

Jetbrains全家桶1年46,售后保障稳定

在这里插入图片描述

小结

  • 执行对象.方法时,优先去当前对象所关联的类中找,没有再去父类找
  • python支持多继承:先继承左边,在继承右边
  • 确认self到底是谁?去self对应的那个类中去获取成员,没有就按照继承关系向上查找
  • 继承存在的意义:将公共的方法提取到父类中,增强代码的重用性
  • 继承方式
    • 继承
    • 多继承
  • 调用类中的成员,规则
    • 优先在自己的类中找,没有去父类找
    • 存在多继承(多个父类),先左后右

3.多态

多态,字面意思就是多种形态

由于python对数据类型没有任何限制,所以他天生支持多态

def func(arg):
    v1=arg.copy()
    print(v1)
func(['wxy'])
func([1,2,3])
class Email(object):
    def send(self):
        print("发邮件")
class Message(object):
    def send(self):
        print("发短信")
def func(arg):
    v1=arg.send()
    print(v1)
v1=Email()
#将v1对象以参数的形式传入给func()函数
func(v1)
v2=Message()
#将v2对象以参数的形式传入给func()函数
func(v2)
# 发邮件
# None
# 发短信
# None

在程序设计中,鸭子类型(duck typing)是动态类型的一种风格,在鸭子类型中,关注点在于对象的行为,能做什么;而不是关心对象所属的类

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209847.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • asp:UpdatePanel客户端回传事件管理

    asp:UpdatePanel客户端回传事件管理asp:UpdatePanel客户端回传事件管理Asp:UpdatePanel是在Asp.NetWebForm中的一个局部刷新控件,虽然很好用,但是在使用过程中却发现如果局部刷新的数据需要再次使用页面js进行格式化,页面则会乱套,所以在这里我们需要对UpdatePanel的回传过程进行控制。

    2022年7月23日
    10
  • discuz搬家。

    discuz搬家。discuz转移时要记得数据库名也要修改。。。。。 discuz搬家时confing文件夹4个文件数据库连接都要改对应4处。/bbs/config/config_global.php、config_global_default.php、config_ucenter.php、config_ucenter_default.php而且有一个文件要改5处。即:config_ucenter.ph

    2022年7月17日
    11
  • mariadb安装教程linux,CentOS 7下MariaDB10.0.14安装配置步骤详解

    mariadb安装教程linux,CentOS 7下MariaDB10.0.14安装配置步骤详解系统环境:CentOS7MariaDB版本:MariaDB10.0.14下载地址:http://mirrors.neusoft.edu.cn/mariadb/mariadb-10.0.14/source/mariadb-10.0.14.tar.gz其他包地址:https://downloads.mariadb.org/添加一个mysql用户useraddmysql开始编译安装MariaDBw…

    2022年6月11日
    38
  • idea配置Tomcat_tomcat docbase

    idea配置Tomcat_tomcat docbaseidea配置tomcaterror:duplicatecontextpath 解决方法:    在editconfig中部署tomcat,     server         tomcathome            D:\software……\apache-tomcat-7.0.65   …

    2022年9月17日
    0
  • VS2013下串口数据char型转COleVariant问题[通俗易懂]

    VS2013下串口数据char型转COleVariant问题[通俗易懂]在串口需要发送一串字符数组buf[]时,COleVariant(buf)强制转换失效(在vc6.0环境中是允许的)。在VS2013环境下需要借助CByteArray类型进行中间的装换,实现代码如下:首先定义:CByteArraym_array;将char型数组中的数值赋值到m_array中 for(inti=0;im_array[i]=sbuf[i]; 

    2022年7月18日
    15
  • python关于缩进_python缩进符号

    python关于缩进_python缩进符号在写作文的时候,老师会告诉我们每段要空两格,这两个空格标志着一个新的段落开始了。在编写程序的时候,我们也要采用类似的方式,通过缩进来表示代码块的开始和结束。认识缩进在之前学过的的例子中,我们所编写的都是简单的表达式语句,没有缩进。但是,要创建复合语句,就需要用到缩进这个重要的概念。我们可以把许多代码行组织到一个代码块中,其中的每一行代码的开始,都保持相同的空格数,通过查看代码行前面的空格数,就可以…

    2022年10月13日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号