Python-class

Python-class

2020/10/25更新 整合了内容

Python面向对象编程

ps:相对熟悉的知识就不仔细列出了

定义与实例

  • class定义一个对象
  • 类的实例是以函数的形式调用类对象来创建的,__init__()为构造函数,__del__()为析构函数

作用域规则

  • Python类中没有作用域,这与C++,Java不同。而需要显示使用self的原因在于Python没有提供显示声明变量的方式(如:int x;),因此无法知道在方法中要赋值的变量是不是局部变量,或者是否要保存为实例属性,而显示self可以解决这一问题。

继承

  • super(cls, instance)会返回一个特殊对象,该对象支持在基类上执行属性查找。你可以通过super获取基类,调用基类的函数。在Python3中,super中的参数可以不要。
  • 多继承不要使用不要使用不要使用

多态动态绑定和鸭子类型

  • 动态绑定(在继承背景下使用,也成多态),obj.attr,首先搜索实例本身,然后是实例的类定义,然后是基类,查找会返回第一个匹配项
  • 动态绑定在于其不受对象obj的类型影响,因此如果执行像obj.name这样的查找,对于所有拥有name属性的obj都适用。这种行为有时候被称作“鸭子类型”(duck typing),这个名称来源于一个谚语:“如果看起来,叫声像而且走起路来像鸭子,那么它就是鸭子”。
Read more
汇编语言语法-1

汇编语言语法-1

汇编语言

前言

声明:

  • 个人学习的是基于x86和Intel64处理器的汇编语言编程与架构
  • 主要分两部分,语法和实验/实操
    • 语法部分学习书籍:《汇编语言——基于x86处理器》(机械工业出版社)(对,就是那一套外国书里的一本),我尝试采用问答的方式写这一系列的博客,问题选自书上的问题
    • 实验部分为课后习题或者是有意思的东东
Read more
breaks

breaks

  • 2019/7/9
  • 结束了大一的课程考试,看了看成绩,简直gg
  • 果然我还是半吊子
  • 假期要好好学习了,大跃进大跃进

  • 假期:

    • 首先是重新更广的学习Python
    • 会穿插一些做网站的前端后端的部分(可能)
    • 汇编语言(看的真的艰辛)
  • 这不是结束,而是新的开始

  • 送给自己一段话:但行耕耘,莫问收获
  • ps:前一段时间不更是因为忙着复习了
Python-base-general

Python-base-general

Python 基础的一些补充

生成器

概念

如果使用yield语句, 可以让函数生成一个结果序列,而不仅仅是一个值
如:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>>def countdown(n):
print("Counting down!")
while n > 0:
yield n
n -= 1
>>>countdown(5)
<generator object countdown at 0x00000289CCDB0888>
>>>c = countdown(5)
>>>c.__next__()
Counting down!
5
>>>c.__next__()
4

  • __next__()调用使生成器函数一直运行,到下一条语句为之。此时next()将返回传递给yield的值,而且函数将暂时中止执行,再次调用next时,将执行yield之后的语句的,持续到函数返回为止。
    通常不会手动调用__next__(),而是使用for in 循环
Read more

Docker入门(不用入土)

了解Docker

Docker

概述

Docker官网

  • 啥是Docker:
    • Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
    • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
    • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
    • Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
  • Docker的优点有啥:
    • Docker容器虚拟化,意味着:
      1.环境隔离:
      通过cgroups和namespace进行实现资源的隔离,实现一个机器运行多个容器互不影响。
      2.更快速的交付部署:
      利用Docker,开发人员可以使用镜像快速构建一套标准的开发环境;开发完成后,测试运维人员可以直接使用相同的环境部署代码。Docker可以快速创建和删除容器,节省大量部署时间。
      3.资源利用高效:
      Docker容器的运行不需要额外的虚拟化管理程序的支持,它是内核级的虚拟化,可以实现更高的性能。
      4.移迁移扩展:
      docker的容器几乎可以在任意的平台下运行。
  • 虽然现在看的云里雾里,但随着我们的后续学习,会对这些优势有一点程度上的理解
Read more