栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

MIT6.031学习笔记

Python 更新时间:发布时间: 百科书网 趣学号

记录在6.031中发现的新东西
MIT6.031能带给我的:英语阅读材料,复习Java,为CS61C的学习做准备

Reading 1: Static Checking

  Static typing
  Java是静态类型语言,所有变量的类型在程序运行(编译)前都是已知的,也可以据此推断出相应表达式的类型,因而我们在编程的时候IDE就可以发现其中的问题。
  Python是动态类型语言,程序运行时才知道变量的类型。
  Python3.5及更新的版本,可以通过类型提示的方式在程序运行前进行类型检查:

# Python function declared with type hints
def hello(name:str)->str:
    return 'Hi, ' + name

  Array and List
  Java(C/C++也是如此)中的Array一旦声明了,其长度就不能变化了。因而在运行的时候经常出现缓存溢出的情况,这也是很多网络安全漏洞/网络蠕虫的罪魁祸首。
  在Java中,List只是一个接口,具体的实现有ArrayList/LinkedList。

List list = new ArrayList();

  为什么这里泛型用的是Interger而不是int呢?因为List只能处理对象类型(object type),而不能处理基本类型(primitive type)。每一个基本类型都有一个与之对应的对象类型,例如:int/Integer, long/Long, float/Float, double/Double。

  Method
  以static修饰的方法不能作为实例方法所调用,只能使用类名来直接调用该方法。

  Mutating values vs. reassigning variables
  重要的设计原则—有目的禁止某些变量的值在运行时改变(变量在运行时超出预期的变化通常会导致程序出现bug);
  使用final关键词来声明那些不会再重新赋值的变量。

  Documenting assumptions
  编程的时候有两个主要目标:
  和计算机沟通。编写具有正确语法、逻辑的代码,通过编译器的执行得到正确结果;
  和人沟通(这也是我经常忽略的方面)。通过编写详细的注释、简明易懂的代码,使得其他人(包括自己)能理解代码的逻辑,方便在以后对其进行改进,重用。

Reading 2: Basic Java

== vs. equals()
  前者比较的是两个变量存储的bit是否相同(int、String、地址);
  equals()默认和前者效果相同,但我们可以override它,使其表现出我们想要的效果(例如比较地址中存的值是否相等);
  == 和 equals()相比要更加强势一点。

Reading 3: Testing

Choosing test cases by partitioning
  通过将module的输入空间分区,在每个分区和边界中选择一个test案例来组成该module的测试单元。
  太学术了,这一节用处不是很大。

Reading 4: Code Review

  略



To be a sailor of the world bound for all ports.
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1033482.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号