python2.7.3安装要求,都需要那些运行库?

Python018

python2.7.3安装要求,都需要那些运行库?,第1张

python2.7.3安装不需要依赖运行库,你可以到python官网下载与你系统对应的安装文件:

https://www.python.org/downloads/windows/

双击按照提示安装就可以了。

如果解决了您的问题请采纳!

如果未解决请继续追问

背景

本来呢,在Windows系统中,安装Python是很简单的,双击对应的exe,然后一直下一步,就可以了。

但是再简单的事情,对于没见过的人来说,都还是不那么简单的。

并且,另外也有一些需要提醒的注意事项,所以,下面就来截图解释如何在Windows中安装Python。

前提

安装之前,对Python不了解的,可以先去看:

【整理】Python语言简介

【教程】如何下载最新版的,各种版本的,包括Python 2.x和Python 3.x的Python

去下载到了Python的安装文件了。

比如我此处的,针对64位Win7的,下载的是:python-2.7.3.amd64.msi

在Windows系统中安装Python

双击python-2.7.3.amd64.msi,弹出对话框中,选择默认的:

为所有人都安装Python

点击Next,进入:

可以看到,默认的安装路径是:C:\Python27

提示:

Python默认的安装路径,是C盘,文件夹名字,是Python加上前两位主版本号,比如:

Python27,表示Python 2.7.x

Python31,表示Python 3.1.x

之类的。

此处,我自己修改为了,自己想要的某个路径

4.点击Next后,出现配置所要安装的项目:

此处,顺便解释一下:

Register Extensions:使得此处安装的Python变成默认的安装的Python。比如你之前也安装了别的版本,那么选择此项,则让此处要安装的Python为默认的;

Tcl/Tk:包含了一些图形环境相关的库:Tkinter和相关开发工具:IDLE,pydoc

Document:就是那个Python HTMLHelp文件,即安装完自后的那个Python Mannual(Python手册)

Utility Scripts:一些Python写的脚本工具

Test suite:用于测试的Python工具

5.点击Next后,就可以看到,正在安装了:

6.然后等一会,就安装完成了。

转自:http://my.oschina.net/chihz/blog/123437

这边只说明面向对象方面的,其他方面见上面链接

面向对象

(1) 经典类和新式

Python OO最神奇的地方就是有两种类,经典类和新式类。

新式类跟经典类的差别主要是以下几点:

1. 新式类对象可以直接通过__class__属性获取自身类型:type

2. 继承搜索的顺序发生了改变,经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动

3. 新式类增加了__slots__内置属性, 可以把实例属性的种类锁定到__slots__规定的范围之中。

4. 新式类增加了__getattribute__方法

Python 2.x中默认都是经典类,只有显式继承了object才是新式类

Python 3.x中默认都是新式类,不必显式的继承object

python 2.x:

>>>ClassicClass.__class__

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

AttributeError: class ClassicClass has no attribute '__class__'

>>>class NewClass(object):

... pass

...

>>>NewClass.__class__

python 3.x:

>>>class NewClass:pass

...

>>>NewClass.__class__

<class 'type'>

(2) 无绑定方法

在Python 2.x中除了类方法和静态方法,其余的方法都必须在第一个参数传递self跟实例绑定,但是在Python 3.x中废除了这条规定,允许方法不绑定实例,这样的方法跟普通的函数没有区别:

Python 2.x:

>>>class MyClass:

... def function():

... print "function"

...

>>>MyClass.function()

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: unbound method function() must be called with MyClass instance as first argument (got nothing instead)

>>>m = MyClass()

>>>m.function()

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: function() takes no arguments (1 given)

Python 3.x:

>>>class MyClass:

... def function():

... print("function")

...

>>>MyClass.function()

function

>>>m = MyClass()

>>>m.function()

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: function() takes no arguments (1 given)

(3) 重要的重载

1. next()和__next__():这应该是继print之后第二大坑爹的不兼容吧,Python程序漫山遍野都是迭代器,但是2和3之间迭代器的实现接口方法名是不同的……嗯,啥都不说了。

2. 分片拦截:Python 3.x之前, 类可以定义__getslice__和__setslice__方法来专门拦截分片,并且这两个方法优先于__getitem__和__setitem__, 但是Python 3.x时代这俩方法再也不存在了,全部的工作都交给了__getitem__和__setitem__,因此在使用这两个方法之前要先判断传递进参数的类型是不是slice对象。

3. __bool__方法:我们知道Python中默认将所有的空对象定义为布尔意义上的False,在自己定义的类中我们也可以加入自定义的布尔判断标准,在2.x中这个方法名叫做__nonzero__, 这个名字显然非常不直观并且不科学!所有考试交白卷的孩子我们都要否定他们的才能么?显然不能!因此Python 3.x中这个方法被重名命为__bool__

4. 3.x 取消了用于大小比较的__cmp__方法,取而代之的是:__lt__、__gt__、__le__、__ge__、__eq__、__ne__,嗯,我感觉这个想法真是不能苟同……有谁能说服我给我洗脑让我爱上这一堆__lt__、__gt__、__le__、__ge__、__eq__、__ne__么。。。

(4) 类修饰器

在我的上一篇博客中秀了一把函数装饰器在表单验证中的使用,http://my.oschina.net/chihz/blog/122897

在3.x的时代,类也有装饰器了,这个装饰器威力巨大,能把装饰的类搞的面目全非,总之想怎么搞就怎么搞,用法同函数装饰器基本一致,只不过传递的参数是类型:

>>>def shutdown(cls):

... def shutdown_func(self):

... print("do something...")

... cls.shutdown = shutdown_func

... return cls

...

>>>@shutdown

... class Test:pass

...

>>>t = Test()

>>>t.shutdown()

do something...

异常

先来看一段代码

python 2.x:

>>>class Person:

... def __init__(self, msg):

... self.msg = msg

...

>>>try:

... raise Person, "woca"

... except Person as p:

... print p.msg

...

woca

python 3.x:

>>>class Person:

... def __init__(self, msg):

... self.msg = msg

...

>>>try:

... raise Person("woca")

... except Person as p:

... print(p.msg)

Traceback (most recent call last):

File "<stdin>", line 2, in <module>

TypeError: exceptions must derive from BaseException

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "<stdin>", line 3, in <module>

TypeError: catching classes that do not inherit from BaseException is not allowed

>>>

接下来说不同:

1. 在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。

2. 2.x raise语句使用逗号将抛出对象类型和参数分开,3.x取消了这种奇葩的写法,直接调用构造函数抛出对象即可。

在2.x时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情,在3.x中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。