面向对象编程
class类(新式类:class xx(obj):,经典类 class xx:) 构造函数 __init__(self,ret1,ret2...) 在实例化时做一些类的初始化工作
析构函数 __del__ (self): 在实例释放或销毁的时候,通常做一些收尾工作,如关闭打开的临时文件、关闭数据库等
类变量
实例变量(静态属性)
方法(动态属性) object对象
encapsulation 封装
私有方法
私有属性
Inheritance 继承
继承
多继承
python2x上
新式类 广度优先(从左到右,先走同级)
经典类 深度优先(竖向查询,先走最深级)
python3x上
都是广度优先
Polymorphism 多态
同一个接口多种实现 把一个类变成一个具体对象的过程叫实例化
实例想调用类里面的方法是把自己变成变量传给类,所以def(self)中的self即是定义的变量
实例变量的作用域就是实例本身
当实例变量与类变量名相同时,先找实例变量。

-----------------------------类的初体验————————

class Dog(0bject):
  n = 123 #类变量,大家共有的属性,节省开销
  name = '我是类name:alex'
  n_list = []

  def __init__(self,name,weight): #构造函数,当调用析构函数是进行实例化
    self.name = name  #实例变量(静态属性)
    self.__weight = weight #私有属性,他人无法从外部访问的属性,可以从内部写一个方法进行调用
  def __del__(self): # 析构函数,在实例释放或者销毁的时候,通常做一些收尾的事情 
    print('%s 离家出走啦' %self.name)
  def loss_weight(self,count):  #类的方法(动态属性)
    self.weight -= count
    print('今天%s的体重为 %s'%(self.name,count)
  def __bulk(self): #私有方法,无法从外部调用的方法
    print('wang wang wang')

d1 = Dog('小黑',100)

——————增:相当于新增了一个age属性,但是这个属性是在d1的内存里面,其他人没有这个新的属性

d1.age = 1

——————改

d1.name = '三炮

——————删

del d1.name

d2 = Dog('小花',50)

d1.n_list.append('from d1')
d2.n_list.append('from d2')

print('Dog.n_list) 
>>>>>(from d1, from d2)

—————————————————类的继承——————————————

class People(object):
  def __init__(self,name,age):
    self.name = name
    self.age = age
    self.friend =  [ ]
  def eat(self):
    print('%s is eating .......'% self.name)
  def sleep(self):
    print('%s is sleeping......‘% self.name)

class Relation(object):
  def make_frient(self,obj):
    print('%s make friends with %s'%(self.name,obj.name))
    sef.friends.append(obj)

class Men(People):
  def __init__(self,name,age,money):
    super(Men,self).__init__(name,age)  #继承了People,又重构属性
    self.money = money
  def play_baseball(self):
    print('%s is play baseball now'% name)

class Women(Relation,People): ###  多继承,广度优先,当类里面无构造函数,从左到右进行寻找构造函数进行实例化
  def birth_baby(self):
    print('%s is birth baby right now'% name)

————————————————多态-————————

class Animal:
  def __init__(self,name):
    self.name = name

  @staticmethod #多态实现过程
  def talk(obj):
    obj.talk()

class Cat(Animal):
  def talk(self):
    print("miao')

class Dog(Animal):
  def talk(self):
    print("wang')

  

week6的更多相关文章

  1. Spark小课堂Week6 启动日志详解

    Spark小课堂Week6 启动日志详解 作为分布式系统,Spark程序是非常难以使用传统方法来进行调试的,所以我们主要的武器是日志,今天会对启动日志进行一下详解. 日志详解 今天主要遍历下Strea ...

  2. 20165310 NetSec2019 Week6 Exp4 恶意代码分析

    20165310 NetSec2019 Week6 Exp4 恶意代码分析 一.实验要求 1.系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间 ...

  3. Internet History, Technology and Security (Week6)

    Week6 The Internet is desinged based on four-layer model. Each layer builds on the layers below it. ...

  4. 【Python学习笔记】Coursera课程《Using Python to Access Web Data》 密歇根大学 Charles Severance——Week6 JSON and the REST Architecture课堂笔记

    Coursera课程<Using Python to Access Web Data> 密歇根大学 Week6 JSON and the REST Architecture 13.5 Ja ...

  5. 【Python学习笔记】Coursera课程《Python Data Structures》 密歇根大学 Charles Severance——Week6 Tuple课堂笔记

    Coursera课程<Python Data Structures> 密歇根大学 Charles Severance Week6 Tuple 10 Tuples 10.1 Tuples A ...

  6. 【C语言】Coursera课程《计算机程式设计》台湾大学刘邦锋——Week6 String课堂笔记

    Coursera课程 <计算机程式设计>台湾大学 刘邦锋 Week6 String 6-1 Character and ASCII 字符变量的声明 char c; C语言使用一个位元组来储 ...

  7. Internet History,Technology,and Security -Transport Control Protocol(TCP)(Week6)

    Week6 Technology: Transport Control Protocol(TCP) Welcome to Week 6 of IHTS. We are in our second we ...

  8. week6 作业

    week6 作业 1.每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为"etc-年-月-日-时-分.tar.gz" crontab -e */1 * * ...

  9. Week6 - 676.Implement Magic Dictionary

    Week6 - 676.Implement Magic Dictionary Implement a magic directory with buildDict, and search method ...

  10. ZROI week6

    ZROI week6 T1 用一个类似背包的东西记录答案. T2 好像直接用|操作即可. T3 瞎搞就完事了 T4 启发式合并,然而变量写错了,就没了... 总结 100 + 100 + 100 + ...

随机推荐

  1. mySQL简单操作(二)

    1.like子句 [where clause like '%com'] '%' '_' 2.正则 3.union操作符 用于连接多个select语句,[distinct]删除重复数据 select c ...

  2. 设计模式理解(十)结构型——享元(Flyweight)

    最后一个结构型,享元.没有太多的项目经验,对这种模式只有一种概念上的理解,就是为了节约内存等资源,把可重用的东西只申请一次,然后处处调用,同时用Hash进行管理. 直接上图: 代码: /******* ...

  3. 【转载】opencv实现人脸检测

    全文转载自CSDN的博客(不知道怎么将CSDN的博客转到博客园,应该没这功能吧,所以直接复制全文了),转载地址如下 http://blog.csdn.net/lsq2902101015/article ...

  4. 读《流畅的python》第一天

    1.跟运算符无关的特殊方法了解: 2.跟运算符相关的特殊方法了解: 3.内置的序列类型分类: 容器序列 list.tuple 和 collections.deque 这些序列能存放不同类型的数据. 扁 ...

  5. Java基础学习-标识符

    1.标识符的作用     -给包.类.方法.变量等起名字 2.组成规则     -这里的字符采用的是Unicode字符集,所以包括英文大小写字母,中文字符,数字字符等.不建议使用汉字.     -下划 ...

  6. 西安理工大学 李爱民 Xi'an University of Technology, Aimin Li

    李爱民-西安理工大学计算机科学与工程学院 ● 简介(Introduction)-> 李爱民(Aimin Li),男,湖北随州人,西安电子科学大学博士(PhD),中共党员.中国计算机学会会员,CS ...

  7. 第一次跑eureka

  8. html 的 crossorigin 属性

    添加这个属性, 并且服务器允许跨域后,会得到精确的报错信息. 添加这个属性,但服务器不允许跨域,就会被同源策略阻止加载资源. 不添加这个属性,只能知道报错,不知道具体信息. https://www.j ...

  9. Java核心知识盘点(一)- 数据存储

    MySQL 索引使用的注意事项 1.索引的目的:在于提高查询效率,插入和更新的操作,数据库的操作是慢的,但是查询操作会非常快,索引可以对表中一个或多个字段进行加索引动作. 2.索引的类型: 1.唯一索 ...

  10. 线段树(segment_tree)

    线段树之——区间修改区间查询 1.概述 线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN). 线段树是 ...