热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python引用和对象的分离_python学习(一)——简介、对象与引用

目录python简介pythonpython特点python2与python3python解释器python开发环境(IDE)对象标识符类型数字型(numbers)序列集合映射可调

目录

python简介

python

python特点

python2与python3

python解释器

python开发环境(IDE)

对象

标识符

类型

数字型(numbers)

序列

集合

映射

可调用类型

模块

其他类型

引用

参考资料

python简介

python

python:官网](www.python.org) ,译为“大蟒蛇”,吉多·范罗苏姆(Guido van Rossum )在荷兰国家数学和计算机科学研究所设计出来的,在1989年发明,1991年正式公布。

python特点

可读性强,在一行语句过长的情况下,可以使用行连接符“\”连接;

是一门解释性语言,易于学习,便于理解,但性能较低;

易于维护;

面向对象编程;

免费开源;

具有可移植性、支持跨平台操作;

有着丰富的库;

具有可拓展性,胶水式语言;

数据库,python提供所有主要的商业数据库接口;

GUI编程;

python2与python3

python2在2000年发布,最新版本为2.7,已停止更新。

python3在2008年发布,两者之间存在兼容问题,可以使用2to3的转换工具无缝迁移。这是python自带的脚本,可以参照官网说明,简单使用方式如下:

2to3 file.py# 在命令行中使用,打印转换文件和源文件区别

2to3 -w file.py# 通过传入-w参数,将需要的修改协会原文件中

# 以上操作均是在原文件的基础上创建副本,可传入-n为直接修改

python解释器

解释器说明CPython基于C语言的解释器,最常用的解释器

Jython基于Java解释器,可以直接调用Java库

IronPython.NET平台上使用的解释器,可以直接调用.NET平台的类

PyPy使用Python语言实现的解释器

python开发环境(IDE)

IDLE为python默认安装开发环境。

自己可使用一些集成的python开发环境,如Anaconda、Pycharm等,可有效提高编程效率,还可以按需使用文本编辑器,如Sublime Text3、VS code、notepad++等,也可利用Jupyter等进行网页编程。

在cmd命令行中也可直接使用 python ex1.py 来运行python文件,以下是cmd命令行的简单认识:

">>>"是提示符

交互窗口的关闭:Ctrl + Z,quit(),直接关闭

中断程序运行:Ctrl + C

对象

对象是python中对数据的抽象,实际上是一个内存块,每一个对象由以下元素构成:

组成成分说明标识(identity)用于唯一标识对象,通常对应于对象在计算机内存中的地址 id(obj)

类型(type)对象存储的数据类型 type(obj),一个对象的类型是不可改变的

值(value)对象所存储的数据信息 print(obj),有些值可变,有些不可变,由其类型决定

注:在某些情况下有可能基于可控的条件改变一个对象的类型。但这通常不是个好主意,因为如果处理不当会导致一些非常怪异的行为。

对象绝不会被显式地销毁,当无法访问时它们可能会被作为垃圾回收。

标识符

用于变量、函数、类、模块等的名称。它有如下特定规则:

对大小写敏感;

第一个字符必须是字母、下划线;

不能使用关键字,可使用help() help>keywords查看,也可在官方文档中查询;

以双下划线开头和结尾的名称通常有特殊含义,尽量避免。

关键字如下:

False await else import pass

None break except in raise

True class finally is return

and continue for lambda try

as def from nonlocal while

assert del global not with

async elif if or yield

标识符有约定俗成命名规则如下:

类型规则例子模块和包名全小写字母,尽量简单,若多个单词之间用下划线numpy

函数名全小写字母,多个单词之间用下划线隔开identify_words

类名首字母大写,采用驼峰规则MyClass

常量名全大写字母,多个单词使用下划线隔开PI

类型

数字型(numbers)

类型说明说明++整型数包含:整型(int),布尔型(bool)整型可以表示任意大小的数字,仅仅收受内存限制

浮点型数float,表示双精度浮点数其取值范围和溢出处理受底层的极其架构控制,注意:python不支持单精度浮点数

复数型complex,以一对双精度浮点数来表示复数值z.real与z.imag可分别取实部、虚部

序列

类型说明说明++字符串string,不可变对象,由 Unicode 码位值组成的序列Python 没有 char 类型,将字符串中的每个码位表示为一个长度为 1 的字符串对象

元组tuple,不可变对象,元组中的元素可以是任意python对象由括号创建,逗号作为分隔,单元素后需要加逗号

字节串bytes&#xff0c;不可变对象&#xff0c;其中每个元素都是一个 8 位字节&#xff0c;以取值范围 0 <&#61; x <256 的整型数表示bytes(‘你好&#xff0c;世界, 123’,‘utf-8’)

列表list&#xff0c;可变对象&#xff0c;可以是任意元素构成[1, “123”&#xff0c; True]

字节数组可变数组可以通过内置的 bytearray() 构造器来创建

集合

类型说明说明&#43;&#43;集合set&#xff0c;可变对象可通过内置的 set() 构造器创建

冻结集合frozenSet&#xff0c;不可变集合可通过内置的 frozenset() 构造器创建

映射

类型说明说明&#43;&#43;字典dict&#xff0c;可变对象表示由几乎任意值作为索引的有限个对象的集合{keys: values}&#xff0c;不可作为键的值类型只有包含列表或字典或其他可变类型&#xff0c;通过值而非对象编号进行比较的值(高效的字典实现需要使用键的哈希值以保持一致性)

可调用类型

此类型可以被应用于函数调用操作。

类型说明说明&#43;&#43;用户定义函数通过def创建

实例方法用于结合类、类实例和任何可调用对象 (通常为用户定义函数)有着特殊的只读属性&#xff0c;self &#xff0c;func &#xff0c;doc &#xff0c;name &#xff0c;module

生成器函数使用 yield 语句 的函数或方法函数在被调用时&#xff0c;总是返回一个可以执行函数体的迭代器对象

协程函数使用 async def 来定义的函数或方法在被调用时会返回一个 coroutine 对象

异步生成器函数使用 async def 来定义并包含 yield 语句的函数或方法函数在被调用时会返回一个异步迭代器对象

内置函数内置函数对象是对于 C 函数的外部封装内置函数参数的数量和类型由 C 函数决定

内置方法内置函数的另一种形式&#xff0c;不同的是包含了一个传入 C 函数的对象作为隐式的额外参数

类通常是作为“工厂”来创建自身的实例

类实例任意类的实例通过在所属类中定义 call() 方法即能成为可调用的对象

模块

模块是 Python 代码的基本组织单元&#xff0c;由导入系统创建&#xff0c;由 import 语句发起调用&#xff0c;或者通过 importlib.import_module() 和内置的 import() 等函数发起调用。

其他类型

自定义类、类实例、I/O对象、内部类型

内部类型说明代码对象表示编译为字节的可执行Python 代码

帧对象表示执行帧

回溯对象表示一个异常的栈跟踪记录

切片对象切片对象用来表示 getitem() 方法得到的切片

静态方法对象静态方法对象提供了一种避免上文所述将函数对象转换为方法对象的方式&#xff0c;静态方法对象为对任意其他对象的封装&#xff0c;通常用来封装用户定义方法对象。当从类或类实例获取一个静态方法对象时&#xff0c;实际返回的对象是封装的对象&#xff0c;它不会被进一步转换&#xff0c;静态方法对象自身不是可调用的&#xff0c;但它们所封装的对象通常都是可调用的。

类方法对象类方法对象和静态方法一样是对其他对象的封装&#xff0c;会改变从类或类实例获取该对象的方式

引用

变量通过地址实现了对对象的引用&#xff0c;变量在栈中&#xff0c;对象在堆中&#xff0c;两者分离

python是动态类型语言&#xff0c;变量不需要显式声明类型&#xff0c;自动根据引用的对象类型来确定类型&#xff0c;因为引用的对象实际上是一个内存块&#xff0c;其中已经包含了type&#xff1b;

python是强类型语言&#xff0c;只支持对象的类型支持的操作&#xff0c;如set不可以索引

参考资料

https://docs.python.org/zh-cn/3.7/library/2to3.html

https://docs.python.org/zh-cn/3/reference/lexical_analysis.html#keywords

一视频教程

python官方文档

https://www.runoob.com/python/python-intro.html



推荐阅读
author-avatar
shanshanhongxing
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有