翻译

Supporting Python 3(支持python3)——语言区别和暂时解决方法

我是研究僧i 提交于 2019-12-06 05:45:32
语言区别和暂时解决方法 这个附录包含一个Python 2和Python 3的不同之处列表以及能不用2to3转换同时在Python 2和Python 3下运行的示例代码。 这个列表是不完整的。在这里列出的只有不包括bug修复的策划变化,即使如此也可能有意外的遗漏。 apply() 2to3 fixer ☑ six support ☐ Python 2的内置apply()在Python 3已经被移除。它用于调用一个函数,但由于你可以直接调用函数它并没有什么用并从Python 2.3起被废弃了。没有替代方案。 buffer() 2to3 fixer ☑ six support ☐ Python 2的buffer()内置函数被Python 3的类memoryview取代了。他们是不完全兼容,所以2to3除非你显示指定buffer固定器否则不会修改这个。 这个代码能不用2to3转换在Python 2和Python 3同时运行: >>> import sys >>> if sys.version_info > (3,): ... buffer = memoryview >>> b = buffer('yay!'.encode()) >>> len(b) 4 callable() 2to3 fixer ☑ six support ☑ Python 2的内置callable()在Python 3

Swift中的as!操作符

此生再无相见时 提交于 2019-12-06 00:33:23
刚开始学习Swift,下载了他人写的项目,用xcode打开后都会提示错误。将代码中的一些 as 修改为 as! 就没问题了。在网上找了下原因,发现了这篇文章—— The as! Operator ,翻译如下: as! 操作符 在Swift 1.2以前,操作符 as 根据表达式的类型可以用来执行两种不同的转换: Guaranteed conversion : Swift编译器保证一种类型的值转换为另外一种类型。例如, 向上转换 (从一种类型转换为其父类型)或者 指定表达式的类型 ( 1 as Float ). Forced conversion : Swift编译器不保证这种强制将一种类型转换为其他类型的安全性,其可能导致运行时问题。例如, 向下转换 (从一种类型转换为其子类型). Swift 1.2 从概念上将 Guaranteed conversion 和 Forced conversion 分成两种不同的操作符。 Guaranteed conversion 仍然用 as 操作符,而 Forced conversion 则用 as! 操作符执行。感叹号 ! 表明这种转换可能会失败,这样你看一眼就知道哪种代码会导致程序奔溃。 下面用例子展示其区别: class Animal {} class Dog: Animal {} let a: Animal = Dog() a as Dog

Supporting Python 3——不使用2to3转换支持Python 2和Python 3

可紊 提交于 2019-12-05 08:37:19
不使用2to3转换支持Python 2和Python 3 虽然Python 3的官方文档努阴人们写同时支持Python 2和Python 3的代码,但是在一此情况这是合适的。尤其是你不能放弃支持Python 2.5及更早的版本时,因为Python 2.6引进了相当多的向前兼容。 使相同的代码在更新的版本同样运行是有可能的,不过你开始进入Python 3文档中提到的“扭曲”的代码风格。我会使用一些技巧来做这些并且我在本章末尾提到的six模块会提供很多帮助。它甚至在一些比较大的项目中使用,但是我通常不推荐在在型项目中使用。对于小项目或者大项目的一部分,例如引导脚本,不使用2to3来支持老的Python版本是最好的解决的方式。 Python 2.7对Python 3的兼容有一些小改进,但如果你想要在Python 2和Python 3下执行相同的代码,似乎你必须要在将来的一段时间内支持Python 2.6。 很多你需要的修改将会被2to3处理,所以开始转换你的代码你事实上需要首先在你的代码上运行2to3并且确保你的代码可以在Python 3下运行。它通常很容易,或者至少在Python 3代码中引入Python 2兼容比在Python 2中引入Python 3代码更不单调。 一旦你有一个在Python 3下的项目,偿试在Python 2.6下运行他们。在这一步你可以执行出语法错误

翻译:introduce to tornado

ⅰ亾dé卋堺 提交于 2019-12-05 01:36:53
简单的web services: 现在我们将开始了解什么是tornado,tornado可以做什么。我们来通过分析tornado实现的一个简单web service 例子开始吧。 Hello Tornado tornado 是一个可以处理http请求的框架,你的工作是作为一个程序员,编写一个handlers来响应一个标准的http请求。,下面是这个例子的所有代码: 范例1:hello.py Code View Copy Print import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define, options define(“port”, default=8000, help=”run on the given port”, type = int ) class IndexHandler(tornado.web.RequestHandler): def get ( self ): greeting = self .get_argument(‘greeting’, ’Hello’) self . write (greeting + ’, friendly user !’) if __name__ =

翻译:《用python和Qt进行GUI编程》——第四章

半城伤御伤魂 提交于 2019-12-04 12:53:36
第 4 章 GUI 编程简介 这一章,我们从回顾3段至今仍然有用的GUI程序开始。我们将利用这个机会去着重强调GUI编程中会包含的一些问题,详细的介绍会放到后面的章节。一旦我们建立起PyQt GUI编程的初步感觉后,我们就讲讨论PyQt的信号槽机制,这是一个高级的通信机制,他可以反映用户的操作并且让我们忽略无关的细节。 尽管PyQt在商业上建立的应用程序大小在几百行到十多万行都有,但是这章我们介绍的程序都在100行内,他们展示了使用很少的代码可以实现多么多的功能。 在这章,我们仅仅使用代码来构建我们的用户界面,在第7章,我们将学习如何使用可视化图形工具,Qt Designer. Python的控制台应用程序和Python的模块文件总是使用.py后缀,不过Python GUI应用程序我们使用.pyw后缀。不无奈是.py还是.pyw,在linux都表现良好,不过在windows上.pyw确保windows使用pythonw.exe解释器而不是python.exe解释器,这确保我们运行GUI程序的时候没有不必要的控制台窗口出现。在Mac OS X,一定要使用.pyw后缀。 PyQt的文档提供了一系列的HTML文件,这些文件独立于Python文档之外。文档中最常用到的是那些转换过来的PyQt API。这些文件都是从原生的C++/Qt文档转换的,他们的索引页是classes.html

[译]2013-10-25 NSObject: the Class and the Protocol

◇◆丶佛笑我妖孽 提交于 2019-12-03 13:22:56
原文链接: https://mikeash.com/pyblog/friday-qa-2013-10-25-nsobject-the-class-and-the-protocol.html Reader Tomas Bouda asks: what's the deal with the NSObject protocol? There are two NSObjects in Cocoa, a class and a protocol. Why both? What purpose do they serve? In today's article, I'll explore the answer to this question. 读者Tomas Bouda问我:“NSObject协议应该怎么理解呢?在Cocoa中有两处NSObject,一处是NSObject类,另一处是NSObject协议。为啥会有两个呢?他们到底有什么作用?”。在今天的文章里,我将会探讨这个问题。 Namespaces 命名空间 First, let's look at how these two entities with the same name can coexist. Classes and protocols in Objective-C inhabit entirely separate

[翻译]如何开始开发自己的操作系统

浪子不回头ぞ 提交于 2019-12-03 10:13:20
This tutorial is written by K.J. and Joachim Nock. Updated 2002.11.20 by K.J. 原文地址: http://www.osdever.net/tutorials/view/getting-started-in-os-development 译者能力有限,欢迎砍砖,共同进步 正文开始 目前看来确实有很多人想要写一个自己的操作系统,但是他们不知道到底从哪开始,而且他们不知道到底都需要掌握哪些计算机语言。 其实,让我开始写我自己的操作系统的时候,我确实也经历了这样的问题。因此我写了这个如何开始开发操作系统的教程。 我写了个 Q&A 表来帮助大家理解。 Q :要写一个自己的操作系统,我都应该掌握哪些计算机语言? A :你需要至少知道汇编语言( ASM ),因为你将使用它去写一个 bootsector (下面会解释这个问题)以及不少其它的事情。我还建议你需要学习 C/C++ ,与汇编语言相比它更好理解一些。你可以把它们都用在你的操作系统中。你可能会想使用 Pascal 和汇编去替代 C++ ,但是我建议使用 C/C++ 和汇编。(记住这里有一些关于 C++ 和操作系统开发的特别的问题) Q :什么是 bootsector(引导扇区) ? A : bootsector 被存在你的软驱或者硬盘最前端的小程序

翻译:《用python和Qt进行GUI编程》——介绍

£可爱£侵袭症+ 提交于 2019-12-03 08:59:48
介绍: 这本书讲的是如何利用Python和Qt来开发GUI应用程序的。仅仅需要一点点必备的知识:你可以使用一些面相对象的语言来编程,例如C++,C#,java或者python等等。在富文本编辑的那些章节,可能需要你了解HTML和正则表达式的一些知识;数据库和线程部分也假定你了解了这些话题的基本知识。至于GUI编程的经验就不需要了,因为所有的关键概念,这本书都包含了。 这本书将对以下的人群提供很大的帮助,无论是专业的程序员,或者是其他领域的编程人员,包括科学家、工程师等。当然这本书对于那些在课题中或者研究上经常需要大量计算的大学生和研究生也同样适用。书中的练习(提供了解答)相信给学生提供了很大帮助。 Python可能是世界上最容易学习也是语法最漂亮的脚本语言了,它得到了广泛的应用,与之对应,Qt可能是最好的GUI应用程序的框架。Python和Qt的结合PyQt,在所有支持他们的平台——windows,Linux,Max OS X和Unix,直接运行你编写的源代码并且不需要改变成了可能,真正的跨平台。得益于Python这个脚本语言,源代码不需要编译,而Qt抽象的方式避开了不同平台的细节。我们要做的仅仅是将写好的源代码或者文件拷贝到目标机器上运行即可,哦,别忘了安装python和PyQt。 如果你是Python界的新手:欢迎你!你将会探索一门容易读写的语言,他的语法明确而不神秘

Zephir 文档翻译-类和对象

不问归期 提交于 2019-12-03 07:56:58
原文: Zephir类和对象 #类和对象 Zephir能够优化面向对象编程,通过使用Zephir能够让你把方法和类写入到PHP扩展中,从而避免常见的运行致命错误和警告,取而代之的是编译错误。 ##类 每一个Zephir文件必须实现一个且只能是一个类或者接口。Zephir的类接口跟PHP的类结构非常相似。 namespace Test; /** * This is a sample class */ class MyClass { } ##类定义 以下类的限定是被允许的: ###Final:这个类不允许被继承 namespace Test; /** * This class cannot be extended by another class */ final class MyClass { } ###Abstract:该类禁止被实例化 namespace Test; /** * This class cannot be instantiated */ abstract class MyClass { } ##编写方法 同PHP中一样,使用function关键字来定义类的方法,可以通过private、public、protected来定义方法的访问权限。 namespace Test; class MyClass { public function myPublicMethod()

嵌入式Qt方案中文显示系列:国际化支持实现

纵然是瞬间 提交于 2019-12-03 03:26:33
上文提到了Qt的国际化支持方案,这里对这一方案进行简要的说明。 使用Qt的国际化支持和翻译机制功能来实现中文的显示,中文字库的支持还是必需的,然后就是使用的Qte库必须包含了翻译特性,不能将翻译特性给裁剪掉,即在qconfig-xxx.h配置文件中不能定义有如下的宏: #define QT_NO_TRANSLATION 此外还需要使用Qt配套提供的QT Linguist语言工具来辅助实现翻译工作的完成。 Qt Linguist提供的工具 linguist 用来进行语言翻译的辅助图形界面工具,方便地进行语言的翻译,可提高翻译效率但非必须 lupdate 用来检查源文件并生成待翻译的TS格式文件的工具,它检查源文件使用了tr函数的地方 lrelease 用来将XML格式的TS翻译文件转换成QT使用的二进制格式的文件工具,以TS文件为输入 这三个工具的使用会涉及到两种格式的文件,即上面提到的TS文件和qm文件: TS文件:是一个XML格式的文件,由lupdate工具以所有源文件为输入自动生成,之后需要进行人工的语言翻译工作;该工作既可以使用linguist工具来完成,也可以直接进行对文件使用文本编辑器来完成。一个TS文件的简单示例为: translation内的中文为人工翻译的,lupdate生成的初始文件该处为空。 <!DOCTYPE TS><TS> <context> <name