首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    啃书-- 流畅的python 第五章 数据类构建器

    ,但不是绝对不可变字段选项1) 提供类型+默认值 : 注意 python规定,带默认值的param 后面不能有无默认值的param 出现,因此带默认值的param 后面所有的param 都必须有默认值。...default_factory 参数值可以是一个函数、一个类,或者其他可调用对象,在每次创建数据类的实例时调用(不带参数),构建默认值。...这样每个实例都会有各自的函数/类/对象,而不是所有实例共享一个函数/类/对象初始化后处理1) 初始化用来给属性赋值(__init__); 添加 __post_init__ 方法,@dataclass 将在生成的...注意:InitVar 变量应该传递给 __post_init__ 方法,因此__post_init__ 需要接收self 和 InitVar变量; 注意不能从类中访问InitVar ,因为InitVar...[str]] = [] #mem : 类属性,是str-list ,初始值为空list def add_mem(self,mem_name): cls = self.

    28410

    用动画和实战打开 React Hooks(三):useReducer 和 useContext

    ,它的参数是之前的状态,返回的是新的状态。...从表面上来看,这个函数接受一个状态的累积值 acc 和新的值 next,然后返回更新过后的累积值 acc + next。...从更深层次来说,Reducer 函数有两个必要规则: 只返回一个值 不修改输入值,而是返回新的值 第一点很好判断,其中第二点则是很多新手踩过的坑,对比以下两个函数: // 不是 Reducer 函数!...第二个参数 initialArg 就是状态的初始值。 第三个参数 init 是一个可选的用于懒初始化(Lazy Initialization)的函数,这个函数返回初始化后的状态。...在按钮 button 的 onClick 回调函数中,我们通过 dispatch 一个类型为 increment 的 Action 去更新状态。 天哪,为什么一个简单的计数器都搞得这么复杂!

    1.9K30

    Python全栈开发之函数

    存在一个参数为函数 函数的返回值中存在函数 map函数 map函数是Python内置的高阶函数,它接收一个函数和一个可迭代对象,并将函数作用在可迭代对象的每个元素上,返回一个map对象 def func...reduce函数 reduce函数也是Python内置的高阶函数,同样它接收一个函数和一个可迭代对象,但是函数必须要接收两个参数,reduce对可迭代对象的每个对象调用函数,并返回最终结果 栗子1 from...filter函数也是Python内置的高阶函数,同样它接收一个函数和一个可迭代对象,函数的作用是对每个元素进行判断,返回True和False,filter根据判断结果自动过滤掉不符合条件的元素 def...单条语句 语句的执行结果就是返回值 name_list = ['kernel','alex','qiyue','hobby','eric','aomikee'] r = sorted(name_list...for i in r: print(type(i)) print(i()) 返回的结果是一个列表类型,列表的每个元素是一个函数,所有的函数运行出来都是9,为什么呢?

    67110

    Python 工匠:善用变量来改善代码质量

    『什么样的名字会被当成 bool 类型?』 布尔类型变量的最大特点是:它只存在两个可能的值『是』 或 『不是』。所以,用 is、has 等非黑即白的词修饰的变量名,会是个不错的选择。...合理使用 namedtuple/dict 来让函数返回多个值 Python 的函数可以返回多个值: def latlon_to_address(lat, lon): return country...country, province, city, district = latlon_to_address(lat, lon) # 或者使用 _ 忽略多出来的返回值 country, province,...当你新增返回值时,不会对之前的函数调用产生任何破坏性的影响: # 1....控制单个函数内的变量数量 人脑的能力是有限的,研究表明,人类的短期记忆只能同时记住不超过十个名字。所以,当你的某个函数过长(一般来说,超过一屏的的函数就会被认为有点过长了),包含了太多变量时。

    2.1K111

    Python工匠:如何更好地使用变量

    另外,虽然 Python 是动态类型语言,但那也不意味着你可以用同一个变量名一会表示 str 类型,过会又换成 list。同一个变量名指代的变量类型,也需要保持一致性。...Python 的函数可以返回多个值,下面是几个不错的示例: def latlon_to_address(lat, lon): return country, province, city...country, province, city, district = latlon_to_address(lat, lon)# 或者使用 _ 忽略多出来的返回值country, province...当你新增返回值时,不会对之前的函数调用产生任何破坏性的影响: # 1....5 控制单个函数内的变量数量 人脑的能力是有限的,研究表明,人类的短期记忆只能同时记住不超过十个名字。所以,当你的某个函数过长(一般来说,超过一屏的的函数就会被认为有点过长了),包含了太多变量时。

    1.4K40

    Java8 中的真的 Optional 很强大,你用对了吗?

    接下来,我们来看看提供空值的方法。 返回默认值 Optional 类提供了 API 用以返回对象值,或者在对象为空的时候返回默认值。...(调用)作为参数的函数,然后将返回的值包装在 Optional 中。...这就使对返回值进行链试调用的操作成为可能 —— 这里的下一环就是 orElse()。 相比这下,flatMap() 也需要函数作为参数,并对值调用这个函数,然后直接返回结果。...filter() 接受一个 Predicate 参数,返回测试结果为 true 的值。如果测试结果为 false,会返回一个空的 Optional。...Optional 主要用作返回类型。在获取到这个类型的实例后,如果它有值,你可以取得这个值,否则可以进行一些替代行为。

    1.1K30

    爬虫(107)Python 3.7的超酷新功能(接近一万字,请耐心享用,而且建议收藏)

    因此,在代码中添加类型提示不应影响其性能。 不幸的是,这并非完全正确,因为大多数类型提示都需要该typing模块。该typing模块是标准库中最慢的模块之一。...,因为不会执行类型提示。...请注意,name最终以注释,None因为这是的返回值print()。...每个功能类似于不带_ns后缀的现有功能。不同之处在于新函数返回int的秒数为n而不是a的秒数float。 对于大多数应用而言,这些新的纳秒级功能与旧的纳秒级功能之间的差异将不明显。...该greet()函数以后可以使用name每个上下文内部的值: import contextvars name = contextvars.ContextVar("name") contexts = list

    1.8K30

    Python 工匠:善用变量来改善代码质量

    『什么样的名字会被当成 bool 类型?』 布尔类型变量的最大特点是:它只存在两个可能的值『是』 或 『不是』。所以,用 is、has 等非黑即白的词修饰的变量名,会是个不错的选择。...合理使用 namedtuple/dict 来让函数返回多个值 Python 的函数可以返回多个值: def latlon_to_address(lat, lon): return country...country, province, city, district = latlon_to_address(lat, lon) # 或者使用 _ 忽略多出来的返回值 country, province,...当你新增返回值时,不会对之前的函数调用产生任何破坏性的影响: # 1....控制单个函数内的变量数量 人脑的能力是有限的,研究表明,人类的短期记忆只能同时记住不超过十个名字。所以,当你的某个函数过长(一般来说,超过一屏的的函数就会被认为有点过长了),包含了太多变量时。

    39130

    基于业务对象(列表)的排序

    现在我们在OrderManager.cs中新添一个方法GetSortList(),它用于获取列表对象,因为GetList()方法返回的记录数太多,而在本文中我们仅关注排序,所以我们仅返回15条记录。...列表中的当前对象)同类型的另一个对象 other,返回一个int类型的值:小于零 当前对象小于 other 参数。...this.CustomerId.CompareTo(other.CustomerId); } 我们将排序的规则委托给了CustomerId去处理,因为CustomerId是一个string类型,调用了它的...,并返回int类型的结果,与IComparable类似,当返回值小于0时,x小于y;等于0时,x等于y;大于0时,x大于y。...(),它接受排序的属性、排序的方式,以及排序的两个对象,最后返回int类型,说明这两个对象的大小(位置的先后): // 对单个属性按某种方式进行排序 public int Compare(Order x

    2.9K20

    Java8 中的真的 Optional 很强大,你用对了吗?

    接下来,我们来看看提供空值的方法。 返回默认值 Optional 类提供了 API 用以返回对象值,或者在对象为空的时候返回默认值。...(调用)作为参数的函数,然后将返回的值包装在 Optional 中。...这就使对返回值进行链试调用的操作成为可能 —— 这里的下一环就是 orElse()。 相比这下,flatMap() 也需要函数作为参数,并对值调用这个函数,然后直接返回结果。...filter() 接受一个 Predicate 参数,返回测试结果为 true 的值。如果测试结果为 false,会返回一个空的 Optional。...Optional 主要用作返回类型。在获取到这个类型的实例后,如果它有值,你可以取得这个值,否则可以进行一些替代行为。

    95620

    Python解析JSON数据教程

    loads是将字符串解析为JSON数据。请注意,它读作“load-s”。这里的“s”代表“字符串”。Load的使用场景是当数据以字节为单位时。这部分后面会详细介绍。 让我们从一个简单的例子开始。...返回的数据类型将取决于输入的字符串。例如,下面这个JSON字符串将返回一个列表,而不是一个字典。...load()方法接收一个文件对象并返回解析为Python对象的JSON数据。 要从文件路径中获取文件对象,可以使用Python的函数open()。...唯一的区别是dumps()返回一个字符串,dump()写入一个文件。 下面是一个简单的演示,将以编辑模式打开文件并将数据写成JSON格式。保存此Python脚本并运行它。...除了编写这个之外,我们还需要调用__init__基类并将参数object_hook的值设置为这个方法的名称。为简单起见,我们可以使用相同的名称。

    5.3K10

    R语言基础教程——第3章:数据结构——列表

    列表 列表(List)是R中最复杂的数据类型,一般来说,列表是数据对象的有序集合,但是,列表的各个元素(item)的数据类型可以不同,每个元素的长度可以不同,是R中最灵活的数据类型。...列表由list()函数创建,每个参数使用逗号分割,用于指定列表项的内容,列表中的元素数量不限,类型不限。...students[[1]][1] "Tom" "Ammy" "BioInfoCloud"> students[["ID"]][1] 1 2 3> [[]]一次只能提取一个组件,返回的类型是组件的类型...[1] "English" "America" "China" > 4 访问列表元素和值 如果列表定义了标签,可以用names()函数获取。...> names(students)[1] "names" "country"> 可以用unlist()函数获取值,unlist()返回值就是一个向量,向量名来自标签。

    88540

    Python 基础

    这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。...变量 a 的地址改变是由于它的指向从 1 的地址更改为 2 的地址;变量 b 的地址为改变表示 1 所在地址的值一直未被修改。...** : 幂, x**y 返回 x 的 y 次幂。 // : 地板除,x // y 返回结果的整数部分。 关系运算符 关系运算符的返回结果总是布尔值(True 或 False)。...pop 方法用于移除指定序号的元素,并返回该元素的值,当列表为空或参数超出列表的索引范围时 Python 将抛出 IndexError: pop from empty list 错误。...country['Korea'] = 2 country['Korea'] = 10 pring(country['Korea']) # 10 字典通过 pop 方法来删除指定 key 的键值对,并返回对应的值

    2K10
    领券