@面向对象三大特性:封装encapsulation、继承inheritance、多态(一个接口,多个实现)polymorphism。

@面向对象介绍http://www.cnblogs.com/alex3714/articles/5188179.html

@编程原则需要考虑:重复代码比较第一,写的代码会经常需要变更。

@如果只是字典搭配函数进行程序设计,会出现绕过控制函数直接更改字典值的漏洞。

@驼峰式命名:ElecticCar

@类的实例化:

r1 = Role('Alex','police','AK47’) #生成一个角色

d.sayhi()#执行函数、方法、功能、动态属性。

以下为解释

r1=Role(r1, 'Alex','police','AK47’)

r1=Role.__init__()à return x2314512o213sxo..

@self.name=name#实例变量(静态属性)。

@__init__()上面再加变量就是类变量,可以通过类和实例进行调用。

@执行时先找实例变量,如果没有就继续找类变量。

@实例化后可以增加属性,如:r1.bb=100;也可以删除属性 del r1.name

@修改属性的值:先实例化后直接给属性赋值;增加函数方法,函数内容是给默认属性赋新值。

@类变量的更改?

@类变量的用途:省内存。

@@@析构函数:在实例释放、销毁的时候执行的,通常做一些收尾工作,比如做一些关闭数据连接、

@创建def __init__(self):

程序退出时,执行;del 实例时执行。

@python自动回收机制,实质就是如果没有变量名,就清理掉。

@ self.name改成self.__name,就成了私有属性。

在实例中无法直接调取,可以再建一个函数,用来调取私有属性,再通过调取函数来调取私有属性。

@5-10、11讲的xml看没看?

@继承

@class man(Farther):

def __init__(self,name,age,自己的属性)

Farther.__init__(self,name,age)

m1=man(xxx,xxx)

调用父类属性,函数里通过Farther.函数

可以用super(man,self).__init__(父类属性),就是可以随时调用父类的属性。

@继承(《入门到实践》)

class Car():
pass
class ElecticCar(Car):
def __init__(self,make,model,year):#导入父类的属性
super().__init__(make,model,year)#想继承的属性
self.size=70#新建属性
def gas():#父类有的函数,我想有但是不一样,直接重新创建函数
pass

@新式类

class people(object):#object叫基类

新旧类的区别,主要体现在多继承的顺序问题,只继承第一个父类的__init__,这个策略叫广度优先。Python3全是广度优先,python2里面经典类是深度优先,新式类是广度优先。

A

B

C

D

@多继承

继承.py里面的man继承people和relation!!!

执行顺序从左到右

@http://www.cnblogs.com/alex3714/articles/5188179.html继承示例

@@@多态

一种接口,多种形态。作用:重复利用接口调用。http://www.cnblogs.com/alex3714/articles/5188179.html

@多态实例(python默认没有多态功能,通过这种形式可实现)

class Animal:

def __init__(self, name):  # Constructor of the class

self.name = name

def talk(self):  # Abstract method, defined by convention only

pass #raise NotImplementedError("Subclass must implement abstract method")

@staticmethod#静态方法,跟类没关系,名义上是类的函数(没用过)

def animal_talk(obj):

obj.talk()

class Cat(Animal):

def talk(self):

print('Meow!')

class Dog(Animal):

def talk(self):

print('Woof! Woof!')

d = Dog("陈荣华")

c = Cat("徐良伟")

Animal.animal_talk(c)

Animal.animal_talk(d)

python-day6面向对象、类的继承的更多相关文章

  1. Python之面向对象类和对象

    Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函 ...

  2. 关于Python中的类普通继承与super函数继承

    关于Python中的类普通继承与super函数继承 1.super只能用于新式类 2.多重继承super可以保公共父类仅被执行一次 一.首先看下普通继承的写法 二.再看看super继承的写法 参考链接 ...

  3. python 之 面向对象基础(继承与派生,经典类与新式类)

    7.2 继承与派生 7.21继承 1.什么是继承? 继承是一种新建类的的方式,在python中支持一个子类继承多个父类.新建的类称为子类或者派生类,父类又可以称为基类或者超类,子类会”遗传“父类的属性 ...

  4. python中的类与继承

    Class 类的定义以及实例的建立 Python中,类通过 class 关键字定义. 例如最简单的一个类定义可以为: class Person(object): pass Python 的编程习惯,类 ...

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

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

  6. Lua面向对象----类、继承、多继承、单例的实现

    (本文转载)学习之用,侵权立删! 原文地址   http://blog.csdn.net/y_23k_bug/article/details/19965877?utm_source=tuicool&a ...

  7. python之7-2类的继承与多态

    类的继承的意思就如同父子关系一样,这个儿子继承了父亲的一切,但是在某些地方(属性)相同的时候,儿子的属性大于老子的属性(覆盖),最底层类,总会继承最接近它的那个类的属性init 类的多态总是和继承相连 ...

  8. python程序设计——面向对象程序设计:继承

    继承是为代码复用和设计复用而设计的 在继承关系中,已有的.设计好的类称为父类或基类,新设计的类为子类或派生类 派生类可以继承父类的公有成员,但不能继承其私有成员 如果需要在派生类中调用基类的方法,可以 ...

  9. Python(面向对象编程——2 继承、派生、组合、抽象类)

    继承与派生 ''' 继承:属于 组合:包含 一. 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称 ...

  10. Python3 面向对象-类的继承与派生

    1.什么是继承? 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类可称为基类或超类,新建的类称为派生类和或子类. 子类会遗传父类的属性,从而解决代码重用问题. ...

随机推荐

  1. H3C_IRF_BFD配置

    IRF典型配置举例(BFD MAD检测方式)1. 组网需求 由于网络规模迅速扩大,当前中心交换机(Device A)转发能力已经不能满足需求,现需要在保护现有投资的基础上将网络转发能力提高一倍,并要求 ...

  2. hibernate的lazy初始化结果

    package com.ehcache; import java.io.Serializable; public class User implements Serializable{ private ...

  3. 可持久化trie学习笔记

    其实很早之前就想学习可持久化trie,不过由于换队友等情况,还是优先去学数论和计算几何,今天突然心血来潮学了一发可持久化trie,感觉还是蛮简单的,不过由于自己很长时间没写过可持久化了,都快忘了是个什 ...

  4. maya_关于脚本编辑器导入python模块

    import sys for p in sys.path: print p rigDir = 'C:\Users\lenovo\Documents\maya\scripts\python\rigLib ...

  5. click python cli 开发包

    python click 包是一个方便的cli 开发包,我们可以用来开发强大的cli 应用 使用venv 进行环境准备,示例代码来自官方 venv 环境准备 python3 -m venv demoa ...

  6. 密码疑云 (3)——详解RSA的加密与解密

    上一篇文章介绍了RSA涉及的数学知识,本章将应用这些知识详解RSA的加密与解密. RSA算法的密钥生成过程 密钥的生成是RSA算法的核心,它的密钥对生成过程如下: 1. 选择两个不相等的大素数p和q, ...

  7. Kafka入门 --安装和简单实用

    一.安装Zookeeper 参考: Zookeeper的下载.安装和启动 Zookeeper 集群搭建--单机伪分布式集群 二.下载Kafka 进入http://kafka.apache.org/do ...

  8. [转]微软商店 打开就显示无法加载该页面 代码0x80131500?

    在某博客看到的方法,供参考,可以尝试一下,我的也是这么解决的 1.打开“运行”输入 inetcpl.cpl (“WINDOWS”+“R”键,输入 inetcpl.cpl亦可) 2.点开高级往下拉,勾上 ...

  9. oracle 删除用户

    -- 查询用户各进程相对应的 sid.serial#. -- 注意: username 必须大写 SELECT sid,serial#,username FROM v$session WHERE us ...

  10. linux tee

    tee 功能说明:读取标准输入的数据,并将其内容输出成文件. 语 法:tee [-ai][--help][--version][文件...] 补充说明:tee指令会从标准输入设备读取数据,将其内容输出 ...