面向对象编程
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. 利用递归解决“汉诺塔的移动”问题(使用python来做的,其它语言也行)

    有a,b,c三个柱子,n个盘子. def move(n, a, b, c): if n == 1: print('move', a, '-->', c) else: move(n-1, a, c ...

  2. KVO的使用三:基于runtime实现KVO

    苹果的KVO原理通过isa-swizzling技术实现,本质实现逻辑是在runtime时添加一个子类,重写set方法进行操作,现在我们也基于runtime来实现一个KVO. 首先新建一个Person类 ...

  3. Configuring VNC Server on Linux

    linux安装oracle时,需用图形化界面安装.所以可采取下列的工具辅助安装 sysvinit (Original Method) systemd (New Method) VNC Clients ...

  4. Django Form表单组件

    Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...

  5. CEF 支持的命令行参数

    参考:https://peter.sh/experiments/chromium-command-line-switches/ List of Chromium Command Line Switch ...

  6. kamailio 云部署 配置NAT

    公有云配置NAT 第一步:将内网ip广播至公网ip,编辑/etc/kamailio/kamailio.cfg文件,搜索listen,添加如下配置 # listen=udp: listen= adver ...

  7. eclipse报错:Multiple annotations found at this line: - String cannot be resolved to a type解决方法实测

    Multiple annotations found at this line:- String cannot be resolved to a type- The method getContext ...

  8. ggplot的boxplot添加显著性 | Add P-values and Significance Levels to ggplots | 方差分析

    参考:Add P-values and Significance Levels toggplots 多组比较,挑选感兴趣的显示显著性. data("ToothGrowth") he ...

  9. Mysql8 查询事务隔离级别

    Mysql8  查询事务隔离级别 SELECT @@TRANSACTION_ISOLATION REPEATABLE-READ  ---默认隔离级别(可重复读)

  10. 创建springboot项目

    springboot 就是为简化spring的创建 配置 部署 运行 而创建的. springboot 直接引入依赖jar包 就行了,无须配置xml 一 创建springboot 1.创建一个mave ...