面向对象编程
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. redis的数据持久化策略

    redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照,它可以将存在于某一时刻的所有数据都写入硬盘里面.另一种方法叫只追加文件(AOF),它会在执行写命令时,将被执行的写命令复制到 ...

  2. Spark大型电商项目实战-及其改良(4) 单独运行程序发现的问题

    之前的运行结果比对发现,有1个函数的作用在2个job里面是相同的,但是对应的计算时间却差太远 于是把4个job分开运行.虽说使用的数据不同,但是生成数据的生成器是相同的,数据排布差距不大,数据量也是相 ...

  3. 【题解】Luogu P2347 砝码称重

    正经·DP题解 一道非常好的背包练手题( sto(注:原思路来源 SLYZ_0120 的题解)orz 开始这道题 1.输入六个数,存进数组中 2.初始化 f 数组为0. f [ i ] 表示重量为 i ...

  4. SKCTF Writeup

    签到题 请打开微信关注,发送give me flag,即可获得. Encode 1.ACSCLL 首先看到这类题,我们肯定是要使用ASCLL的(这么明显的提示大家肯定一眼就能看出来),我们可以对照As ...

  5. Laravel用post提交表单常见的两个错误

    最近在自学Laravel,测试用post方法提交表单时碰到两个错误: 1.获取传入的值时,报错如下图所示: 在stackFlow找答案时各种解释都有,但认真读一下报错信息,意思大概是:获取Http传入 ...

  6. BZOJ-2298|区间dp|线段树

    problem a Description 一次考试共有n个人参加,第i个人说:"有ai个人分数比我高,bi个人分数比我低."问最少有几个人没有说真话(可能有相同的分数) Inpu ...

  7. input[type=file]的美化

    __ 一般的选择框在美化过程中会出现各种问题,样式出错,文字无法更改等... 所有随之而生的便是这样的一种修饰方式:[将type=file的input与另一个按钮通过js绑定,这样便可以通过改变另一个 ...

  8. python 绘制点线

    plot(x, y) #默认为蓝色实线 plot(x, y, 'r*') #红色星状标记 plot(x, y, 'go-') #带有圆圈标记的绿线 plot(x, y, 'ks:') #带有正方形标记 ...

  9. linux中的wc命令

    linux中wc命令用法 Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: ...

  10. HTML5地理定位API在chrome中不能正常使用

    navigator.geolocation.getCurrentPosition在chrome中不能正常使用. 经测试发现,FQ后就能正常使用,估计是因为chrome 对这个API的实现使用了goog ...