#1.接口类,对象类。规范类中方法的统一。

# 第一版:三个类,每个类中有相同的方法
# class Alipay:
# def __init__(self,money):
# self.money=money
# def pay(self):
# print('用支付宝支付了{}钱'.format(self.money))
# class JDpay:
# def __init__(self,money):
# self.money=money
# def pay(self):
# print('用白条支付了{}钱'.format(self.money))
# class Wechatpay:
# def __init__(self,money):
# self.money=money
# def pay(self):
# print('用微信支付了{}钱'.format(self.money))
# p1=Alipay(200)
# p2=JDpay(300)
# p3=Wechatpay(260)
# p1.pay()#用第一种方法付钱
#第二版:改进,让方法一样
# class Alipay:
# def __init__(self, money):
# self.money = money
# def pay(self):
# print('用支付宝支付了{}钱'.format(self.money))
# class JDpay:
# def __init__(self,money):
# self.money=money
# def pay(self):
# print('用京东支付了{}钱'.format(self.money))
# class Wechatpay:
# def __init__(self,money):
# self.money=money
# def pay(self):
# print('用微信支付了{}钱'.format(self.money))
# def pay(obj):#统一pay的方法
# obj.pay
# a1=Alipay(200)
# pay(a1)#归一化设计 #第三版,制定规则让方法统一 # from abc import ABCMeta,abstractmethod
#
# class payment(metaclass=ABCMeta):
# @abstractmethod
# def pay(self):pass#继承它的类中必须有pay这个方法,方法名也要相同。
# class Alipay(payment):
# def __init__(self,money):
# self.money=money
# def pay(self):
# print('用支付宝支付了{}钱'.format(self.money))
# class JDpay(payment):
# def __init__(self,money):
# self.money=money
# def pay(self):
# print('用京东支付了{}钱'.format(self.money))
# class Wechatpay(payment):
# def __init__(self,money):
# self.money=money
# def pay(self):
# print('用微信支付了{}钱'.format(self.money))
# def pay(obj):
# obj.pay()
# w1=Alipay(200)
# a2=JDpay(100)
# pay(w1)
# pay(a2) # from abc import ABCMeta,abstractmethod
# class payment(metaclass=ABCMeta):
# @abstractmethod
# def pay(self):pass
#
# class Alipay(payment):
# def __init__(self,money):
# self.money=money
# def pay(self):
# print('支付宝支付{}钱'.format(self.money))
# def pay(obj):
# obj.pay()
# w1=Alipay(100)
# pay(w1)
# 2.多态:python没有多态, 处处是多态
#python弱类型语言,不管什么类型传入函数,封装到函数都可以。
#python有鸭子类型,是一种思想。
# class Animal:
# def eat(self):
# pass
# class Person:
# def eat(self):
# pass
# class machine:
# def eat(self):
# pass #这些类 都互称为鸭子.有相同的方法,名字相同。 #3.封装
#广义的封装:实例化一个对象,给对象空间封装一些属性。
#狭义的封装:私有制 #私有成员:私有静态字段,私有方法,私有对象属性 #1)私有静态字段
# class me:
# __age=20
# def __init__(self):
# print(self.__age)
# def my(self):
# print(me.__age)
# class Anyone(me):
# __name='alen'
# def func(self):
# print(Anyone.__name)#内部可以访问
# def func1(self):
# # print(self.__name)
# print(self.age)
# a1=Anyone()#可以访问父类中__init__中的私有字段
# print(a1.__name)#实例化对象不能访问私有字段
# print(Anyone.__name)#类名不能访问私有字段 # 对于私有静态字段,类的外部不能访问.
# print(a1.func())#函数内部可以访问
# 对于私有静态字段,类的内部可以访问.
# print(a1.func1())
# 对于私有静态字段来说,只能在本类中内部访问,类的外部,派生类均不可访问.
# print(a1.my())#本类可以访问
#2)私有方法
# class A:
# __my="asdfa"
# def __mylove(self):
# print('woaini')
# class B(A):
# def __youlove(self):
# print('oh my god')
# def funck(self):
# # self.__mylove# 类的派生类也不能访问.
# self.__youlove()#类内部的方法可以访问
# a1=B()
# # a1.__youlove()#不能在类外部执行方法
# a1.funck()# 类的派生类也不能访问. # class brith:
# __air='020'
# def __bb(self):
# print('呼吸空气')
# def __init__(self):
# self.__bb()
#
# class day(brith):
# def __aa(self):
# print('阿斯顿发送到')
#
# a1=day()

python day19--面向对象,接口,封装的更多相关文章

  1. python(面向对象-类封装调用)

    一.面对对象思想 (1)大家肯定听过 Python 中”一切皆对象“的说法,但可能并不了解它的具体含义,只是在学习的时候听说 Python 是面向对象的编程语言,本节将向大家详细介绍 Python 面 ...

  2. python之面向对象之封装

    今天我们终于进入了面向对象,今天做一下面向的封装的总结 #面向对象的封装 #这里定义了一个类,名称为Role,object是所有类的父类 class Role(object): #这里是定义实例的属性 ...

  3. Python之面向对象:封装

    1.封装的概念 将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节保护起来,就称为封装.外界只能通过对象的方法访问对象,因此封装同时也实现了对象的数据隐藏. 在使用面向对象的封装特性时 ...

  4. python学习day19 面向对象(一)封装/多态/继承

    面向对象 封装思想:将同一类的函数函数封装到同一个py文件中,方便调用 面向对象也有封装的作用,将同一类的函数封装到一个类中 多态(鸭子模型):多种类型/多种形态 #,什么事鸭子模型 对于一个函数,p ...

  5. Jser 设计模式系列之面向对象 - 接口封装与继承

    GOF在<设计模式>中说到:面向接口编程,而非面向实现编程 鉴于此,这个概念可见一斑! JS却不像其他面向对象的高级语言(C#,Java,C++等)拥有内建的接口机制,以确定一组对象和另一 ...

  6. python基础--面向对象之封装

    # 在python中用双下划线,开头的方式将属性隐藏起来(设置成私有的) # 但其实这只是一种变形操作,而且仅仅在类定义阶段会发生变形 # 类中所有双下划线开头的如__x都会在类定义的时候自动形成:_ ...

  7. python 面向对象之封装与类与对象

    封装 一,引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,小老虎一起装进麻袋,然后把麻袋封上口子.照这种逻辑看,封装='隐藏',这种理解是相当片面的 二,先看如何隐藏 在 ...

  8. python面向对象(封装、继承、多态)+ 面向对象小栗子

    大家好,下面我说一下我对面向对象的理解,不会讲的很详细,因为有很多人的博客都把他写的很详细了,所以,我尽可能简单的通过一些代码让初学者可以理解面向对象及他的三个要素. 摘要:1.首先介绍一下面向对象 ...

  9. python之路----面向对象的封装特性

    封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. 广义上面向对象的封装 :代码的保护,面向对象的思想本身就是一种只让自己的对象能调用自己类中的方法 狭义上的封装 —— 面向对象的三大 ...

  10. python开发面向对象基础:封装

    一,封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 1. 将变化隔离: 2. 便于使用: 3. 提高复用性: 4. 提高安全性: [封装原则] 1. 将不需要对外提供的内 ...

随机推荐

  1. webservice 开发规范

    JAVA中共有三种WebService规范,分别是:JAXM&SAAJ.JAX-WS(JAX-RPC).JAX-RS 下面类分别简要介绍一下这三个规范 1. JAX-WS (Java API ...

  2. redis工具

    pom.xml添加 <!--jedis redis客户端--> <dependency> <groupId>redis.clients</groupId> ...

  3. maven maven-war-plugin 解决java war项目间的依赖(两个war都可独立部署运行,maven 3.2.x亲测)

    最近整理基础框架,有些项目不想分布式,所以基础框架必须同时可独立部署,也可直接被作为依赖和业务工程打到一起,记录下解决war项目依赖的要点,一开始用warpath,结果报找不到,有些帖子还是17年的, ...

  4. asp.net 后台 get,post请求

    //Post请求 public static string Post(string url,string obj=null) { string param = (obj);//参数 byte[] bs ...

  5. 利用JS打印质数

    我爱撸码,撸码使我感到快乐!大家好,我是Counter,今天非常愉快,没有前几天的相对比较复杂的逻辑思维在里面,今天来写写,利用JS打印质数,基本上很多面试,会很经常的考到.那废话不多说,直接上代码: ...

  6. 浅析Tomcat、JBOSS、WebSphere、WebLogic、Apache

    做任何web项目,都离不开服务器,有钱的公司用WebSphere.WebLogic,没钱公司用nginx+tomcat,不要小瞧nginx+tomcat麻雀虽小,五脏俱全. 服务器的知识,在笔试.面试 ...

  7. IVIEW对的table组件超出长度用省略号代替,使用气泡提示。

    render: (h, params) => { return h('div', [ h('Tooltip', { props: { placement: 'top' } }, [ h('spa ...

  8. Learning-Python【12】:装饰器

    一.什么是装饰器 器:工具 装饰:为被装饰对象添加新功能 装饰器本身可以是任意可调用的对象,即函数 被装饰的对象也可以是任意可调用的对象,也是函数 目标:写一个函数来为另外一个函数添加新功能 二.为何 ...

  9. python腾讯语音合成

    一.腾讯语音合成介绍 腾讯云语音合成技术(TTS)可以将任意文本转化为语音,实现让机器和应用张口说话. 腾讯TTS技术可以应用到很多场景,比如,移动APP语音播报新闻:智能设备语音提醒:依靠网上现有节 ...

  10. 【HNOI 2018】游戏

    Problem Description 一次小 \(G\) 和小 \(H\) 在玩寻宝游戏,有 \(n\) 个房间排成一列,编号为 \(1,2,-,n\),相邻房间之间都有 \(1\) 道门.其中一部 ...