首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

会让人工智能为做决定

问题导读 1.认为我们已经将那些事情委托给人工智能? 2.认为人工智能是否可以做更多的事情? 3.认为人工智能未来可以做那些事情? 会让人工智能为做决定?...可能会争辩说,这不是AI,但有几个新的模型以聪明的方式控制交通流量,使用各种检测车辆等待的方法等等。 今天的飞机驾驶员负责起飞和降落,并且在计算机控制飞机轨迹的同时,将剩下的时间用于监视飞行。...如果阅读新闻,可能会碰到有关讨论自动驾驶汽车的文章,讨论各种假设的情景,说明汽车是否应该能够解决道路困境,决定刹车失败时谁会跑过去。...我们可以把病人的监督留给机器?看起来人类的工作不够好,而且美国FDA刚刚批准了一个系统,该系统可以实时监测患者,分析并实时交付医院工作人员,以帮助预防医院意外死亡。临床试验看起来非常有前景。...如果聘请了一个可怜的律师,直到后来才知道该协议在法庭上被视为无法执行。

61720

可迭代对象 python_列表是可迭代对象

引出问题: ​如下面所示,存在一个类,并且产生了一个对象,现在想用for循环实现对象的迭代,结果报错了 # -*- coding: utf-8 -*- """ 演示一个类是不可以迭代的 结果存在报错信息...Stuends_iter(self) def __next__(self): # len_name = len(self.obj.nam) return self.obj.names[0] 传参的结果如下,已经能够成功打印列表中的第一个值...(6) 获取所有传递的列表的长度 len_name = len(self.obj.names) #获得了长度就可以用循环遍历了 (7)完成循环遍历,并且判断长度,存在问题,遍历结束后,仍没有退出 def...Stuends_iter(self) def __next__(self): # len_name = len(self.obj.nam) return self.obj.names[0] 传参的结果如下,已经能够成功打印列表中的第一个值...(6) 获取所有传递的列表的长度 len_name = len(self.obj.names) #获得了长度就可以用循环遍历了 (7)完成循环遍历,并且判断长度,存在问题,遍历结束后,仍没有退出 def

89650
您找到你想要的搜索结果了吗?
是的
没有找到

分页列表缓存,真的会

生产环境使用 keys 命令比较危险,发生事故的几率高,非常不推荐使用。 2 查询对象ID列表,再缓存每个对象条目 缓存分页结果虽然好用,但缓存的颗粒度太大,保证数据一致性比较麻烦。...我们查询出商品分页对象ID列表,然后为每一个商品对象创建缓存 , 通过商品ID和商品对象缓存聚合成列表返回给前端。 伪代码如下: ? ​...”查询对象ID列表,再缓存每个对象条目“ 这个方案比较灵活,当我们查询对象ID列表,可以不限于数据库,还可以是搜索引擎,Redis 等等。 下图是开源中国的搜索流程: ? ​...若缓存对象结构简单,使用 mget 、hmget 命令;若结构复杂,可以考虑使用 pipleline,Lua 脚本模式 。笔者选择的批量方案是 Redis 的 pipleline 功能。...4 总结 本文介绍了实现分页列表缓存的三种方式: 直接缓存分页列表结果 查询对象ID列表,只缓存每个对象条目 缓存对象ID列表,同时缓存每个对象条目 这三种方式是一层一层递进的

77470

JavaScript对象知道全部的对象分类

理解这些对象的性质,我们才能真正理解我们使用的 API 的一些特性。 JavaScript 中的对象分类 我们可以把对象分成几类。 1. ...普通对象(Ordinary Objects):由{}语法、Object 构造器或者 class 关键字定义类创建的对象,它能够被原型继承; 下面我会为一一讲解普通对象之外的对象类型。...ECMA 标准为我们提供了一份固有对象表,里面含有 150+ 个固有对象可以通过这个链接查看。 但是遗憾的是,这个表格并不完整。...所以在本篇的末尾,我设计了一个小实验,可以自己尝试一下,数一数一共有多少个固有对象。 内置对象·原生对象 我们把 JavaScript 中,能够通过语言本身的构造器创建的对象称作原生对象。...值得一提的是,在 ES6 之后 => 语法创建的函数仅仅是函数,它们无法被当作构造器使用,见以下代码: new (a => 0) // error 对于用户使用 function 语法或者 Function

58530

Python的列表怎么用?会用?

Python的列表怎么用?会用?本文主要介绍了Python中列表(List)的详解操作方法,包含创建、访问、更新、删除、其它操作等,需要的朋友可以参考下。 1.创建列表。...只要把逗号分隔的不同的数据项使用方括号括起来即可 List = [‘wade’,’james’,’bosh’,’haslem’] 与字符串的索引一样,列表索引从0开始。...1 for i in List: 2 print i, 4.访问列表中的值 使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取字符,如下所示: 1 >>> List = [1,...: 1、list.append(obj):在列表末尾添加新的对象 2、list.count(obj):统计某个元素在列表中出现的次数 3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值...(用新列表扩展原来的列表) 4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置 5、list.insert(index, obj):将对象插入列表 6、list.pop(

91920

知道前端怎么实现列表无限滚动

只展示可视区域内的列表项目,动态计算可视区域内的列表项,删除非可视区域列表项。...第二层作为占位层(infinite-list-phantom),根据实际列表的长度占位,撑开空间,形成滚动条 第三层作为列表层(infinite-list),列表数据展示的可视化区域,需要用transform...:translate3D(x,y,z),这里的y指的是列表偏移量。...(2)监听数据 监听容器的scroll事件,获取滚动位置scrollTop 可视区域高度:screenHeight 列表每项高度:itemSize 列表数据:listData 当前滚动位置:scrollTop...$ref.list.scrollTop 确定列表项的高度:itemSize = 100px 可视区域的列表项的总数:visableCount = Math.ceil(screenHeight / itemSize

29510

知道JavaScript全部的对象分类

理解这些对象的性质,我们才能真正理解我们使用的 API 的一些特性。 1. JavaScript 中的对象分类 我们可以把对象分成几类。 1. ...普通对象(Ordinary Objects):由{}语法、Object 构造器或者 class 关键字定义类创建的对象,它能够被原型继承; 下面我会为一一讲解普通对象之外的对象类型。 2....ECMA 标准为我们提供了一份固有对象表,里面含有 150+ 个固有对象可以通过这个链接查看。 但是遗憾的是,这个表格并不完整。...所以在本篇的末尾,我设计了一个小实验,可以自己尝试一下,数一数一共有多少个固有对象。 4. 内置对象·原生对象 我们把 JavaScript 中,能够通过语言本身的构造器创建的对象称作原生对象。...值得一提的是,在 ES6 之后 => 语法创建的函数仅仅是函数,它们无法被当作构造器使用,见以下代码: new (a => 0) // error 对于用户使用 function 语法或者 Function

53920

Python对象之间的比较,Ok

Python中对象之间的比较,可以用 ==,也可以用 is. 在实际使用时,该如何选用。 先记住两点: 1) == 比较的是两个对象的内容是否相等,即内存地址可以不一样,内容一样就可以了。...在python中,内存地址查看方法: 1 In [1]: a = [1,2,3] In [2]: id(a) #获取列表实例 a在内存中的地址 Out[2]: 95219592 2 In [5]:...b = [1,2,3] #再创建一个列表实例,元素取值也为 1,2,3 In [6]: id(b) Out[6]: 95165640 3 In [7]: a is b # is操作符本质上判断a...str2) True 9 In [78]: a = [1, 2, 3] In [79]: b = [1, 2, 4] In [80]: a == b Out[80]: False 扩展 目前最常使用...继承自object对象的__eq__()方法直接比较两个对象的id. 很不幸,很多实际场景中,与我们期望相悖。

1.9K10

还在用BeanUtils做对象拷贝

Vo对象给前端展示。...那么就涉及到对象拷贝,开始的时候用的Spring的BeanUtils做对象转换,并没有什么问题,后来到了测试那里,加大数据量,发现接口越来越慢,开始以为数据库查询问题,把sql搬到数据库运行,发现并不慢...,如果数据量大的话还是建议大家使用MapStruct的方式,提高接口的性能。...MapStruct快的原因 MapStruct使用注解处理器生成实现类,实现类内部是原生的new对象,然后SetXxx/getXxx方式赋值进行数据拷贝的,类似lombok,看实现类的.class public...,内部实现也是有区别的,特别校验这块,至于他们之间的详细区别,交给小伙伴们自己去探寻啦~ 结尾 总结:通过这次简单的测试,掌握了三种拷贝方式的实现方式和性能差异,不过使这块还是建议小伙伴们根据实际场景使用

20520

知道列表切片的这些反直觉操作

inplace操作,无返回值,但执行后lyst变为[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] reversed(lyst) #lyst列表不变,返回逆序结果,但返回的是一个迭代器对象...另外,列表中切片索引数值要求均为整数(曾有PEP提议,索引可接受任意值,然后由python进行隐式取整处理,但被reject了),且步长索引不能为0。...切片访问 对列表某索引对应值进行访问,当对单个索引访问时,要注意索引的合格范围;但对列表切片时则不会显式报错。...n-1个值(即最后一个元素除外的所有元素倒序输出),因为可以正负索引混合使用,所以自己想当然的写下了如下语句: lyst[-2:-1:-1] #返回[] 我的逻辑是倒数第二个索引是-2,返回前面的所有值...当然,这里不打算介绍这个库和相应方法,而只是想就此引出列表中如何通过切片实现拷贝。

57620

真的理解 SOLID 面向对象设计原则

{ ... } public class WeChatPayProcessor implements PayProcessor { ... } 这样,新增支付方式只需要新增类,如果使用的是...里式替换原则 一个对象在其出现的任何地方,都可以用子类实例做替换,并且不会导致程序的错误。换句话说,当子类可以在任意地方替换基类且软件功能不受影响时,这种继承关系的建模才是合理的。...如果程序依赖了长方形的面积计算方式,并使用正方形替换了长方形,实际表现与预期不符。 扩展 不能用继承关系(is-a),但可以用委派关系(has-a)表达。上例中,可以使用正方形类包装一个长方形类。...或者,将正方形和长方形作进一步抽象,使用共有的抽象类。...(来源: 互动百科) 接口分离原则 客户(client)不应被强迫依赖它不使用的方法。即,一个类实现的接口中,包含了它不需要的方法。将接口拆分成更小和更具体的接口,有助于解耦,从而更容易重构、更改。

72930

重学前端(二)-真的了解JS的对象

书接上文,开始重学前端(第二篇) Object——对象 开篇之初我们先抛出几个问题? 1、什么是面向对象? 2、function 是一个对象? 3、对象分为几类呢? 4、什么是原型对象?...回想一下这个这些问题心中是否已有答案呢?在接下来的内容中,我们逐一共同学习! 正篇 灵魂质问?...咱研究底层之前,我们先来看看数组 数组 数组对象的作用是:使用单独的变量名来存储一系列的值。...面向对象之继承 说起面向对象,继承必不可少,那么什么是继承呢? 用大白话解释:继承就是父对象的成员,子对象无需创建,就可直接使用 那么我们怎么继承呢?...原型对象实现继承 由于在es6出现之前,我们没有类的概念,我们的语言标准,就沿用了祖师爷发明的原型系统,虽然不是正统语言该有的样子,但也独领风骚,什么都长得像java还能叫js

1.1K10

真的会使用github

然而,对于这样一个极具价值的平台,真的会使用?...一、如何使用github进行项目管理 1.首先,得明确需要上传github的项目内容。这里我要特别提醒,可别提交与公司相关的内容,可是签过保密协议的,提交的内容要慎重,尽量避开与公司相关的内容。...搜寻好的github开源项目有两种途径: github的搜索功能:如果对学习的内容有明确的方法,使用这种。 github的每日趋势:如果对最新的技术热点感兴趣的话,使用这种。...首先要有明确的项目实现目标和设计思路,其次需要将之前模仿过程中汲取到的精华与自身的项目经验结合以及设计思路结合起来,最终设计和实现一个有使用价值的开源项目,并运用到实际的开发工作中去不断检验项目的价值...当然,如果不怕骚扰的话,也可以放上的qq号和邮箱。 5.丰富的使用案例。这点要求可能比较高了,一般个人开源者很少会去收集项目的使用案例。

26520

MacBookPro真的会使用

. —— Bruce Lee " 经过不懈的努力,小闫同学终于使用上了 MacBook Pro,先小小的炫耀一番。(不要打我哈~)顺便晒两张图: ? ?...在 Mac 上面,command 键等同于 Windows 上的 control 键,所以复制粘贴懂得 ~ 下面快来学习一些 Mac 的小知识吧!...control+command+F 再次按上述快捷键即可恢复原样 2.快速将当前窗口最小化: command+M 如果当前窗口处于最大化状态,那么此命令无效 3.快速将最小化的窗口调出来: 3.1 先使用如下快捷键...Flask框架重点知识总结回顾 Elasticsearch查询时还在百度DSL语句?...可能需要这份总结 浅谈密码加密 Django框架中的英文单词 Django中数据库的相关操作 DRF框架中的英文单词 DRF框架 Django相关知识点回顾 python技术面试题-腾讯

1K21

C++都有对象了,还没有?

通过使用成员函数和成员变量,我们可以对对象进行操作和访问其属性,从而使类具有更多的功能和灵活性。...请注意,在 C++ 中需要使用 iostream 库进行输入输出操作,并使用 main 函数创建类的对象并调用成员函数。...在C++语言中实现封装,可以通过类将数据以及操作数据的方法进行有机结合,通过访问权限来隐藏对象内部实现细节,控制哪些方法可以在类外部直接被使用。...,需要使用的时候调用即可,对象之间公用同一个成员函数.这种设计方式有效的节省了类实例化出对象后的空间消耗....person1.introduce(); person2.introduce(); return 0; } 运行结果: 初阶牛 CSDN 上面这段代码中这两个调用的是同一个函数?

17520

有认真了解过自己的“Java 对象

作为一名 Javaer,生活中的我们可能暂时没有对象,但是工作中每天都会创建大量的 Java 对象有试着去了解下自己的“对象?...(一般使用带整理功能的垃圾收集器,都采用指针碰撞) 111.png 如果内存是不规整的,虚拟机需要维护一个列表,这个列表会记录哪些内存是可用的,在为对象分配内存的时候从列表中找到一块足够大的空间划分给该对象实例...,并更新列表内容,这种分配方式就是“空闲列表”。...使用CMS 这种基于Mark-Sweep 算法的收集器时,通常采用空闲列表。 111.png 我们都知道堆内存是线程共享的,那在分配内存的时候就会存在并发安全问题,JVM 是如何解决的呢?...直接指针(Hotspot 使用该方式) 如果使用该方式,Java堆对象的布局就必须考虑如何放置访问类型数据的相关信息,reference中直接存储的就是对象地址。

1.1K10

面试官:知道对象的克隆原理

既然有浅复制,那么就会有深度复制? 是的。 案例 简单版,模仿用户信息,一个是用户地址类UserAddress和一个用户信息类User。...外面的User对象克隆是成功了,但是克隆出来的对象中,引用类型的属性并没有克隆出来,还是使用同一个引用地址。 什么是深度复制?...如果引用类型里面还包含很多引用类型,或者内层引用类型的类里面又包含引用类型,使用clone方法就会很麻烦。这时我们可以用序列化的方式来实现对象的深克隆。...关于序列化实现深度复制,请看这篇文章:面试官:说说对序列化的理解 案例 下面使用Object的clone方法和实现Cloneable接口,写一个深度复制案例: 先创建一个用户地址类: public...否则,此方法会创建此对象的类的一个新实例,并像通过分配那样,严格使用对象相应字段的内容初始化该对象的所有字段;这些字段的内容没有被自我复制。

45620

真的会正确使用日志

由于一般按天滚动日志文件,日期不需要放在这个时间中,使用 HH:mm:ss.SSS 格式即可。 日志级别 日志级别主要使用 DEBUG、INFO、WARN、ERROR。...在输出 ERROR 级别的日志时,尽量多地输出方法入参数、方法执行过程中产生的对象等数据,在带有错误、异常对象的数据时,需要将该对象一并输出: 推荐的日志 log.error( "Invoking com.service.UserService...,如果代码中使用该方式输出日志,可能会导致该输出丢失。...实现 toString() 需要输出日志的对象,应在其类中实现快速的 toString 方法,以便于在日志输出时仅输出这个对象类名和 hashCode。...预防空指针 不要在日志中调用对象的方法获取值,除非确保该对象肯定不为 null,否则很有可能会因为日志的问题而导致应用产生空指针异常。

33130

真的会正确使用断言

新建一个assert.py文件,写下如下代码: 1print(__debug__) 2assert 2 > 5 当使用python assert.py运行时,`__debug__`会输出True,assert...当使用python -O assert.py运行时,`__debug__`会输出False,assert 2 > 5语句由于没有执行不会报任何异常。...用一句话来概括断言的使用场景和与异常的区别: “ 检查先验条件使用断言,检查后验条件使用异常。”...assert语句来对file_path的类型进行推断,提醒程序员修改代码,这样的推断在生产环境中是不需要的,也可以使用if + raise语句来实现assert,但是要繁琐很多。...并且,相比于assert语句只能抛出AssertionError,使用异常可以抛出更细致的错误,方便上层代码针对不同错误执行不同的逻辑。

1K30
领券