books

Python可变参数

萝らか妹 提交于 2019-11-27 22:05:26
很多编程语言都允许定义个数可变的参数,这样可以在调用函数时传入任意多个参数。Python 也不例外,在定义函数时也可以使用可变参数。 可变参数,又称不定长参数,即传入函数中的实际参数可以是任意多个。Python 定义可变参数,主要有以下 2 种形式。 1) 可变参数:形参前添加一个 '*' 此种形式的语法格式如下所示: *parameter 其中,parameter 表示形参名。这种形式表示接受任意多个实际参数,并将其放到一个元组中。 下面程序定义了一个形参个数可变的函数: # 定义了支持参数收集的函数 def test(a, *books) : print(books) # books被当成元组处理 for b in books : print(b) # 输出整数变量a的值 print(a) # 调用test()函数 test(5 , "C语言中文网" , "Python教程") 运行上面程序,将看到如下运行结果: ('C语言中文网', 'Python教程') C语言中文网 Python教程 5 从上面的运行结果可以看出,当调用 test() 函数时,books 参数可以传入多个字符串作为参数值。从 test() 的函数体代码来看,参数收集的本质就是一个元组: Python 会将传给 books 参数的多个值收集成一个元组。 Python

第12次作业

你说的曾经没有我的故事 提交于 2019-11-27 20:35:54
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容。 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造你的图书馆管理系统或购物车。 2.1 简述如何使用流与文件改造你的系统。文件中数据的格式如何? 答: 用流与文件改造系统的主要步骤 : 静态初始化块初始图书馆内的图书的数据。 将初始化后的数据使用对象流 ObjectOutputStream 写入文件 Book.data 进行保存(用户模块也用类似的方式进行操作)。 在图书馆模块中写一个方法,用于保存修改后文件数据,操作过程中数据的修改都将能进行保存(用户模块也要写这个方法)。 文件中数据的格式 :用对象流写入文件是以十六进制保存的。 2.2 简述系统中文件读写部分使用了流与文件相关的什么接口与类?为什么要用这些接口与类? 接口 : InputStream 、 OutputStream 、 Serializable 类 : ObjectInputStream 和 ObjectOutputStream 、文件类 File 原因 :不使用字节字符流,而使用对象流,是为了可以将一整个对象的信息都存入文件。使用对象流写入或读取对象时,是需要对象序列化的,这时候就要用到 Serializable 接口。 2.3 截图读写文件相关代码。关键行需要加注释。 图书馆初始化 : books.put

ORM操作中管理对象的获取及使用

回眸只為那壹抹淺笑 提交于 2019-11-27 16:22:01
我们在使用ORM来操作有外键和多对多关系的数据库时,免不了用到管理对象,但管理对象的获取很容易混淆,特此来记录一下 以下是我们要用到的models class Publisher ( models . Model ) : pid = models . AutoField ( primary_key = True ) #主键 name = models . CharField ( max_length = 32 , unique = True ) #出版社名称 def __str__ ( self ) : return self . name class Book ( models . Model ) : id = models . AutoField ( primary_key = True ) #主键 title = models . CharField ( max_length = 32 , unique = True ) #书籍的名称 publisher = models . ForeignKey ( "Publisher" , on_delete = models . CASCADE , related_name = "books" ) #外键 def __str__ ( self ) : return "object:{}-{}>" . format ( self .

单表操作之图书管理系统

我是研究僧i 提交于 2019-11-27 01:52:45
展示 def books(request): book_list = Book.objects.all() return render(request, "books.html", {"book_list": book_list}) 添加 def addbook(request): if request.method == "POST": # 获取用户提交的数据 title = request.POST.get("title") price = request.POST.get("price") pub_date = request.POST.get("pub_date") publish = request.POST.get("publish") book = Book.objects.create(title=title, price=price, pub_date=pub_date, publish=publish) return redirect(reverse("books")) else: return render(request, "addbook.html") 鼠标放在添加书籍按钮,浏览器左下角有一个地址 删除 def delbook(request, nid): Book.objects.get(pk=nid).delete() return redirect

Spring缓存注解@CachePut , @CacheEvict,@CacheConfig使用

非 Y 不嫁゛ 提交于 2019-11-26 19:54:45
Cacheable CachePut CacheEvict CacheConfig 开启缓存注解 @Cacheable @Cacheable是用来声明方法是可缓存的。将结果存储到缓存中以便后续使用相同参数调用时不需执行实际的方法。直接从缓存中取值。最简单的格式需要制定缓存名称。 例如: @Cacheable("books") public Book findBook(ISBN isbn) {...} 在上面的代码片段中,findBook方法与名为books的缓存想关联。每次调用该方法时,将在缓存中检查该请求是否已执行,以免重复执行。虽然在大多数情况下,只有一个缓存被声明,注释允许指定多个名称,以便使用多个缓存。这种情况下,在执行方法之前,每个缓存都会检查之前执行的方法,只要有一个缓存命中,即直接从缓存中返回相关的值。 即使没有实际执行缓存方法,所有其他不包含该值的缓存也将被更新。 例如: @Cacheable({"books", "isbns"}) public Book findBook(ISBN isbn) {...} 默认key生成: 默认key的生成按照以下规则: - 如果没有参数,则使用0作为key - 如果只有一个参数,使用该参数作为key - 如果又多个参数,使用包含所有参数的hashCode作为key 自定义key的生成: 当目标方法参数有多个时

Micronaut 教程:如何使用基于 JVM 的框架构建微服务?

一曲冷凌霜 提交于 2019-11-25 22:17:45
本文要点: Micronaut 是一种基于 jvm 的现代化全栈框架,用于构建模块化且易于测试的微服务应用程序。Micronaut 提供完全的编译时、反射无关的依赖注入和 AOP。该框架的开发团队和 Grails 框架的开发团队是同一个。Micronaut 框架集成了云技术,服务发现、分布式跟踪、断路器等微服务模式也内置到了框架中。在本教程中,你将使用不同的语言创建三个微服务:Java、Kotlin 和 Groovy。你还将了解使用 Micronaut HTTP 客户端消费其他微服务是多么容易,以及如何创建快速执行的功能测试。 与使用传统 JVM 框架构建的应用程序不同, Micronaut 提供 100% 的编译时、反射无关的依赖注入和 AOP。因此,Micronaut 应用程序很小,内存占用也很低。使用 Micronaut,你可以开发一个很大的单体应用或一个可以部署到 AWS Lambda 的小函数。框架不会限制你。 Micronaut 框架还集成了云技术,服务发现、分布式跟踪、断路器等微服务模式也内置到了框架中。 Micronaut 在 2018 年 5 月作为开源软件发布,计划在 2018 年底之前发布 1.0.0 版本。现在你可以试用 Micronaut,因为里程碑版本和发行候选版本已经可用。 Micronaut 框架的开发团队和 Grails 框架的开发团队是同一个