将零碎的知识点体系化真的很重要,我把 Python 基础的所有要点都放在一张思维脑图(Xmind 做的)里了。不得不说思维导图真是体系化知识的好工具。...---- 数据:数据的重要性不需要多讲,在 Python 中数据可分两大类: 元素型:整数、浮点、布尔、None 容器型:字符串、元组、列表、字典、集合 数据会被命名成变量,变量(词)之间会发现联系(...考虑对象和类。 ---- 对象和类:对象是既具有数据又具有行为的实例,而类是对象的描述。...正则表达式:r-string,用法 re.function(pattern, text) 解析表达式:列表、字典、集合解析式,用 [], {}, () 生成器:生成器是迭代器,但反之不是 生成函数 +...yield 生成表达式 + () 迭代器: iter(可迭代对象) --> 迭代器 迭代器是可迭代对象 装饰器:用 @decorator_function ---- 现在我已经把整套 Python 基础知识的体系建出来了
为什么不是拷贝值?...基本数据类型(值类型)Java 语言共提供了4 类、8 种基本类型图片整数型是对数学中整数的表达,按照数值范围和存储空间大小顺序:byte 浮点型是对数学中的小数的表达...,即有浮动小数点的数,float - 32 位,直接赋值时必须在数字后加上 f 或 F,指示编译器这是一个float型浮点数double - 64 位,赋值时一般在数字后加 d 或 D,指示编译器这是一个...double型浮点数Unicode 字符型是对Unicode编码的表达,Unicode编码是对全世界所有主要语言中各类字符、符号的编码,是将文档转存成计算机的二进制序列进行保存的理论基础。...可以看到虽然编译阶段是正常的,没有提示错误,但是运行时的结果却是一个不确定的数据,而不是预期的。
当你处理成千上万个相似的对象时,它们都需要更新,而你自己也已经对其进行了跟踪,那么这样做是值得的。你需要去了解性能会消耗多少,因为它随目标平台的不同而不同。优化在编辑器下可以获得最大收益。...向外移动的正确方向是通过从形状的位置减去区域的位置并将结果归一化来找到的。注意,我们必须使用transform.position,而不是本地位置,因为生成区域不需要是根对象。...那会更有意义,因为它实际上描述的是矩形UI区域,而不仅仅是位置。但是Unity一直使用Position,因此我也会这样做。 ? ? (空行) 因为我们没有在OnGUI中做任何事情,所以什么也没画。...我们必须创建另一个 custom property drawer,这次是为FloatRangeSliderAttribute而不是为FloatRange。...因为最小值和最大值可以通过滑块更改,所以我们必须通过在它们前面放置ref来提供它们作为参考参数。这就使它们成为对变量的引用(就像它们是对象而不是浮点数一样),因此MinMaxSlider可以更改它们。
1、Map是键值对,Set是值得集合,当然键和值可以是任何得值2、Map可以通过get方法获取值,而set不能因为它只有值3、都能通过迭代器进行for...of 遍历4、Set的值是唯一的可以做数组去重...关于原理: 基本原理是通过媒体查询(@media)查询检测不同的设备屏幕尺寸做处理。关于兼容: 页面头部必须有mate声明的viewport。...官方对clear属性解释:“元素盒子的边不能和前面的浮动元素相邻”,对元素设置clear属性是为了避免浮动元素对该元素的影响,而不是清除掉浮动。...call 方法接收的参数,第一个是 this 绑定的对象,后面的其余参数是传入函数执行的参数。也就是说,在使用 call() 方法时,传递给函数的参数必须逐个列举出来。...一是因为对象的哪个属性先遍历,哪个属性后遍历是不确定的,需要开发者手动指定。
在车间里,我帮客户选型时,先问 3 个 “大白话问题”,比看复杂参数表管用多了:1. 问题 1:“接什么设备?传什么信号?”...选之前一定要看设备接口:“带针的是公头,带孔的是母头”,不确定就拍特写照片!3. 问题 3:“线缆要转还是固定?”...→ 定 “浮动款” 还是 “固定款”MMCX 的核心优势是 “旋转”,但不是所有款都能转 —— 分 “浮动款”(能 360° 转)和 “固定款”(不能转),选错了会毁线缆:浮动款 MMCX:公母头连接后能自由旋转...不用看所有参数,重点盯紧这 4 个:1. 阻抗匹配:50Ω/75Ω“差一点就不行”和其他射频连接器一样,MMCX 的阻抗必须和设备、线缆完全一致。...四、避坑指南:MMCX 选型的 “4 个经典坑”,都是新人踩过的在车间做售后这么多年,我总结了 MMCX 选型最容易踩的 4 个坑,每个都有 “血泪案例”,帮你提前避开:1. ❌ 坑 1:“用 MMCX
因为这里通配符不论是什么类型,必须是MathBook的父类,所以在父类的List集合添加子类MathBook是完全可以的。...但是不建议这样做,因为根据传入的参数,第一个E会被推断为String类型,而第二个E被推断为Integer类型,这样会造成理解上的歧义。...3)如果直接将泛型类型参数定义为类型是不会报错的,但是如果在集合类型的泛型中,将泛型类型定义为一样的参数,就真的会报错了。 ?...泛型方法的上下限 将上面的方法修改成通配符上限和泛型方法上限也没有任何问题。需要注意的是,使用泛型方法的上下限时,需要在方法定义的时候设置上下限,而不是在参数里面设置上下限。...如果依赖对象不确定,可以使用泛型通配符,但是如果被依赖对象不确定,则不可以使用泛型通配符。 ? 依赖对象不确定 依赖对象使用通配符没有问题,程序可以运行。因为通配符类型的上限就是B。 ?
一、类型萃取的基本概念 类型萃取从字面意思理解,就是帮助我们挑选某个对象的类型,筛选特定的对象来做特定的事。...简单来说,就是可以在程序编译阶段对类型进行分析和处理,而不是在运行时。 二、类型萃取的具体用途 实现高效的代码复用 在编写通用代码时,经常会遇到需要对不同类型的数据进行不同操作的情况。...如果是浮点数,则进行特殊的处理以避免精度损失;如果是整数类型,则直接进行加法运算。 提供类型安全保障 C++ 是一种强类型语言,但在一些模板代码中,由于类型的不确定性,可能会出现类型不匹配的错误。...cpp 复制 template void process(T value) { static_assert(std::is_integral::value, “参数必须是整数类型”); //...如果不是整数类型,则会在编译期产生错误,提示“参数必须是整数类型”。 支持泛型编程 泛型编程是 C++的重要特性之一,它允许我们编写通用的代码,能够适用于不同类型的数据。
7月工作小结 由 Ghostzhang 发表于 2006-08-04 09:11 终于也算是结束了一个项目,对我来说,这是我进TC后的第一个项目。...没有什么新鲜感,写出的代码还是一样垃圾,一直自己提倡的东西自己却做不好,不过我相信,现在“丑”只是为了更快的看到进步。OK,牢骚发完,还是说点有用的吧。 一,宽度的问题。 auto 默认值。...length 由浮点数字和单位标识符组成的长度值或百分数。百分数是基于父对象的宽度。 二,浮动的问题。...div 和 span 对象假如没有指定宽度会被分配默认的宽度,在IE5之前的浏览器版本中则必须指定宽度值才可以呈递此属性。 三,样式的重用问题。...一直都知道样式有继承的特点,可什么时候会继承,怎么继承就不得而知了,还好在《HTML与XHTML权威指南》里发现了这么一段“类继承了它们的一般基本标签的样式属性……”、“类无法继承其他类的属性,只能从它们代表的标签的未分类版本中继承
在我以往的Android开发生涯中,几乎没有使用过单元测试,也没有见过有人去介绍过,好像这个东西在国内开发者眼里并不是很重要,或者说大多数开发同学没有专门的时间去使用单元测试框架,也许更重要的原因应该是我个人的孤陋寡闻...背景 什么是单元测试? 单元测试是针对最小的单元编写测试代码。在 Java 中,最小的功能单位是方法,因此,对Java 程序进行单元测试就是针对单个 Java 方法的测试。...为什么要做单元测试 在国外,实际开发流程往往是,先编写测试,测试写完后,再开始真正编写实现代码。在具体实现过程中,一边写一边测,什么时候测试全部通过,就代表开发任务完成。...@After 在每个测试方法后执行,可做释放资源操作 @Ignore 忽略的测试方法 @BeforeClass 在类中所有方法前运行。...(6)); closeTo 断言浮点型数在某一范围内 assertThat(4.0, closeTo(2.6, 4.3)); allOf 断言符合所有条件,相当于&& assertThat(4,allOf
执行环境只会改变this、传递的参数、全局变量等为什么需要清除浮动?清除浮动的方式浮动的定义: 非IE浏览器下,容器不设高度且子元素浮动时,容器高度不能被内容撑开。...扩展运算符的作用及使用场景(1)对象扩展运算符对象的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中。...在redux中的reducer函数规定必须是一个纯函数,reducer中的state对象要求不能直接修改,可以通过扩展运算符把修改路径的对象都复制一遍,然后产生一个新的对象返回。...迭代器的对象的属性,返回的是数组的元素、对象的属性值,不能遍历普通的obj对象,将异步循环变成同步循环every() 和 some() 否 数组方法,some()只要有一个是...是代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。
我很喜欢这门语言,因为它的简洁灵活,易学,易读,可移植并且功能强大。 高级 可以说,每一代编程语言的产生,我们都会达到一个新的高度。...解释性和编译性 Python 是一种解释型语言,这意味着开发过程中没有了编译这个环节。一般来说,由于不是以本地机器码运行,纯粹的解释型语言通常比编译型语言运行的慢。...浮点数 就是小数 整数和浮点数在计算机内部的存储是不同的 整数的运算永远是精确的 而浮点运算可能有四舍五入的误差 列表List list是一个是一个可变的有序表,是Python内置的一种数据类型,可以随时添加...对于不可变对象作为函数参数,相当于C系语言的值传递; 对于可变对象作为函数参数,相当于C系语言的引用传递。 高级特性 迭代器 Python中的迭代器是什么呢?...也就是在Python中,可以动态的创建类,类也是对象,这就是使用关键字class时Python在幕后做的事情,这些都是通过元类实现的。 那么到底什么是元类呢?
比如身边的朋友,喊他的时候不会叫他的全名,像我很好的朋友,我一般都喜欢叫他"阿威",而不会去称呼全名.我叫他"阿威",他还是他没有什么问题. ...这里要注意的一点是:引用类型必须和引用实体是同种类型的! 这里编译器直接就报错了,这样是不被允许的! ☁️引用的特性 ⭐引用在定义时必须初始化 这里的引用a没有初始化,编译器直接报错了!...☁️使用场景 ⭐做参数 在没有引用前,我们交换两个变量的值需要使用指针来完成。现在可以使用引用来完成了。 ⭐做返回值 上面是一段有问题的代码!...引用在定义时必须初始化,指针没有要求 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体 没有NULL引用,但有NULL指针 在sizeof中含义不同:引用结果为引用类型的大小...因此C++11中引入了基于范围的for循环。 for循环后的括号由冒号“ :”分为两部分:第一部分是范围内用于迭代的变量,第二部分则表示被迭代的范围。
常见的类数组对象有 arguments 和 DOM 方法的返回结果,函数参数也可以被看作是类数组对象,因为它含有 length属性值,代表可接收的参数个数。...而const声明变量必须设置初始值。(7)指针指向: let和const都是ES6新增的用于创建变量的语法。 let创建的变量是可以更改指针指向(可以重新赋值)。...----问题知识点分割线---- 为什么函数的 arguments 参数是类数组而不是数组?如何遍历类数组?...----问题知识点分割线---- 为什么需要清除浮动?清除浮动的方式浮动的定义: 非IE浏览器下,容器不设高度且子元素浮动时,容器高度不能被内容撑开。 此时,内容会溢出到容器外面而影响布局。...常见的类数组对象有 arguments 和 DOM 方法的返回结果,还有一个函数也可以被看作是类数组对象,因为它含有 length 属性值,代表可接收的参数个数。
,例如str(1e28)为‘1e+28' str(1e2)为'100.0'等等 浮点型强制转换函数float(),可以将包含一个小数点的数字字符串或者整形转换为浮点型,如float('0012')为12.0...但当母函数和其闭包都定义了参数时,由于在母函数体外是无法直接对闭包进行函数调用的,为了能够实现对闭包的调用,需要在母函数内增加一条返回闭包函数名本身的语句,这个时候调用母函数后返回的是一个闭包的函数对象...10.4 两个内置函数filter()和map() (1)filter() filter()函数实现过滤功能,有两个参数,第一个参数为None或一个函数对象,第二个参数为一个可迭代的对象,当第一个参数为...None时,实现将可迭代对象的每一个元素值为False的过滤掉,生成一个仅包含元素值为True的新可迭代对象 如下所示,将值为False过滤,留下值为True的值 ?...(2)map() map()函数与filter函数形式一致,实现对可迭代对象的映射,但其第一个参数必须是一个函数对象,而且map()函数是将经过函数对象处理后的返回值作为新的元素组成一个可迭代对象的,举例说明
---- 数据:数据的重要性不需要多讲,在 Python 中数据可分两大类: 元素型:整数、浮点、布尔、None 容器型:字符串、元组、列表、字典、集合 数据会被命名成变量,变量(词)之间会发现联系...考虑对象和类。 ---- 对象和类:对象是既具有数据又具有行为的实例,而类是对象的描述。...原来 map 函数是把它第一个参数(函数)作用到它第二个参数(容器型数据)上啊。 用 ismeat 函数来判断牛、土豆、鸡和玉米是不是肉,得出汉堡和鸡腿是肉,因此将它们过滤(filter)出来。...原来 filter 函数是把它第一个参数(函数)作用到它第二个参数(容器型数据)上,然后过滤出返回为真的数据。...将 eat 函数压缩(reduce)牛、土豆、鸡和玉米成排泄物,因此 reduce 函数是用第一个参数(函数)作用到它第二个参数(容器型数据)上,得到一个元素型数据。
如果对模式进行缩放,则不使用输出类型的全范围,而是选择省略对称的最小可能值(例如,输出范围是-127到127,而符号8位量化的输出范围不是-128到127),因此0.0映射到0。...如果对模式进行缩放,则不使用输出类型的全范围,而是选择省略对称的最小可能值(例如,输出范围是-127到127,而符号8位量化的输出范围不是-128到127),因此0.0映射到0。...否则,您可能会得到所有量子化值都映射到相同浮点值的缓冲区,这将导致必须对其执行进一步计算的操作出现问题。参数:input:类型为float32的张量。...round_mode:将浮点值舍入为量子化值时的舍入模式。name:操作的可选名称。narrow_range:如果为真,则量子化最小值的绝对值与量子化最大值相同,而不是大于1。...也就是说,对于8位量化,最小值是-127而不是-128。返回值:一个张量。每个元素都是对相应的输入元素进行量化和去量化的结果。
console.log(i); // ReferenceError: i 没有定义 相对于 var而言,使用let后,迭代变量i的作用域仅限于for循环块内部 使用varfor循环嵌套异步事件最常见的问题...表示值为布尔值; "string"表示值为字符串; "number"表示值为数值; "object"表示值为对象(而不是函数)或 null; "function"表示值为函数;...(其实不是这道的,但是找不到了) 答: parseInt()字符串转换成整型,parseFloat()字符串转换成浮点型,Number()字符串转换成数字型 Number()看的是整体,只要字符串内的内容不是合法的数字...constructor:保存着用于创建当前对象的函数。 hasOwnProperty:用于检查给定的属性在当前对象实例中是否存在。参数的属性名必须以字符串形式指定。...参数的属性名必须以字符串形式指定。 toLocaleString():返回对象的字符串,该字符串与执行环境的地区对应。 toString():返回对象的字符串表示。
Python是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库的一门强类型的动态,可移植,可扩展,可嵌入的解释型编程语言。...解释型语言的优点:跨平台容易,只需提供特定平台的解释器;缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。 简述解释型和编译型编程语言? 可参考上一条的解释内容。 3....迭代器:在Python2中很多返回列表对象的内置函数和方法在Python3都改成了返回类似于迭代器的对象,因为迭代器的惰性加载特性使得操作大数据更有效率。...另外,字典对象的dict.keys()、dict.values()方法都不再返回列表,而是以一个类似迭代器的view对象返回。高阶函数map、filter、zip返回的也都不是列表对象了。...Python2的迭代器必须实现next方法,而Python3改成了__iter__()、next。
在系统学习迭代器之前,我一直以为 range() 方法也是用于生成迭代器的,现在却突然发现,它生成的只是可迭代对象,而并不是迭代器!...;(2)它接收的参数必须是整数,可以是负数,但不能是浮点数等其它类型;(3)它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素;(4)它是可迭代对象,却不是迭代器。...这样还有一个好处,即当作为参数的可迭代对象发生变化的时候,作为结果的迭代器因为是消耗型的,不会被错误地使用。...而 range() 方法就不同了,它接收的参数不是可迭代对象,本身是一种初次加工的过程,所以设计它为可迭代对象,既可以直接使用,也可以用于其它再加工用途。...4、小结 回顾全文,我得到了两个偏冷门的结论:range 是可迭代对象而不是迭代器;range 对象是不可变的等差序列。 若单纯看结论的话,你也许没有感触,或许还会说这没啥了不得啊。
以集合来举例,使用泛型的好处是我们不必因为添加元素类型的不同而定义不同类型的集合,如整型集合类,浮点型集合类,字符串集合类,我们可以定义一个集合来存放整型、浮点型,字符串型数据,而这并不是最重要的,因为我们只要把底层存储设置了...对象的相等性本质是对象 hashCode 值(java 是依据对象的内存地址计算出的此序号) 判断的, 如果想要让两个不同的对象视为相等的,就必须覆盖 Object 的 hashCode 方法和 equals...15、什么是TreeSet(二叉树) TreeSet()是使用二叉树的原理对新 add()的对象按照指定的顺序排序(升序、降序),每增加一个对象都会进行排序,将对象插入的二叉树指定的位置。...Integer 和 String 对象都可以进行默认的 TreeSet 排序,而自定义类的对象是不可以的, 自己定义的类必须实现 Comparable 接口,并且覆写相应的 compareTo()函数,...和泛型方法一样,泛型类的类型参数声明部分也包含一个 或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。