python语法学习之函数、类、模块
Python中通过使用类(class)和对象(object)来实现面向对象(object-oriented programming,简称OOP)的编程。
面向对象编程的最主要目的是提高程序的重复使用性,这和函数的目的相类似。
一:函数
如果你需要在程序中重用代码,---------定义函数。 def 函数名(参数)://todo
如:
输出:
也可以将函数的参数定义为默认参数,注:默认参数一般放参数的最后,如:
输出:
二:类
类的定义应该是放在面向对象的标题里,但是我们一般函数定义在类里面,从这个范围来说,我在这记录了类。
类和对象是面向对象编程的两个主要方面。类:创建一个新类型,而对象是这个类的实例,类使用class关键字创建。类的域和方法被列在一个缩进块中。
注意:在python语言中,不管什么类型的实例都被看做对象,如整数也被作为对象看待,它属于int类,这和其他语言c++,java把整数纯粹作为类型是不同的。
”域“的概念:
属于一个对象或类的变量被称为域,其实就是类里面定义的变量
域——类的变量和对象的变量
1:类的变量:由一个类的所有对象(实例)共享使用,只有一个类变量的拷贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有其他的实例上。我理解为:其实它就是一个类的全局变量,类实例化后的对象都可以调用该变量。
2:对象的变量: 由类的每个对象/实例拥有。因此每个对象有自己对这个域的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相同的名称,但是是互不相关的。我理解的是:不同的对象调用该变量,其值改变后互不影响,跟C#的语法一样,我还因为不理解第一点纠结了半天 !
属于类级别的变量,在使用它的时候一定要带上类型名字 比如 MyClass.count
属于每个对象级别的变量,在调用的时候一定要带上self表明属于当前对象。self.name
如:
输出:
域(变量)和方法(函数)可以合称为类的属性
类的方法:
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不用为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。(类似于c#的this指针)
如:
__init__方法:属于python语言的构造函数,一个类只能有一个__init__方法
__del__方法:属于python语言的析构函数,它在对象消逝的时候被调用。
当对象不再被使用时,__del__方法运行,但是很难保证这个方法究竟在 什么时候 运行。如果你想要指明它的运行,你就得使用del语句
知道了类的构造后,因此 aa=[1,2,3] 等同于 aa=list([1,2,3])
三:模块
模块:如果你想要在其他程序中重用很多函数--------定义模块。其实就是很多的类型,很多的方法集合在一个或多个文件中,通过import ** 载入,类似于c#中的dll
模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。
注意:每个模块都有自己的名称__name__,__name__作为模块的内置属性,它的作用就是检测.py文件的调用方式,然后根据__name__做出相应的处理。
模块有两种调用方式:1:被import载入调用 2:直接使用
如果模块直接执行,__name__="__main__"; 通常,此语句用于模块测试中使用。
例如:定义一模块名字为MyModule.py
直接运行输出:
通过其他模块调用:
调用模块代码:
间接调用运行输出:
导入部分类,函数及变量,可以使用from...import... 例如 from MyModule import ModuleClass
python语法学习之函数、类、模块的更多相关文章
- python语法学习第十一天--模块
容器----------->数据的封装 函数----------->语句的封装 类-------------->方法和属性的封装 模块----------->程序本身 导入: ...
- python语法学习面向对象之继承
python语法学习面向对象之继承 转载自:http://www.cnblogs.com/Joans/archive/2012/11/09/2757368.html 只要涉及到面向对象,”类“是必须出 ...
- 转 python语法学习面向对象之继承
传送门 python语法学习面向对象之继承 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始 ...
- python入门学习:8.类
python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类 面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...
- python初步学习-import和datetime模块
模块 一个完整大型的python程序是由模块和包的形式组织起来的,可见模块在python中的重要性.模块是一种组织型式,它许多有关联(关系)的代码组织放到单独的独立文件中.简单的说,可以把模块理解为一 ...
- python自动化测试学习笔记-5常用模块
上一次学习了os模块,sys模块,json模块,random模块,string模块,time模块,hashlib模块,今天继续学习以下的常用模块: 1.datetime模块 2.pymysql模块(3 ...
- PYTHON 100days学习笔记008-2:模块
目录 Day008_02:模块 1.import语句 1.1from - import 语句 1.2 from - import * 语句 2.深入模块 2.1 __name__属性 2.2 dir( ...
- python基础学习2 函数变量与赋值
学习的第一步,就是通常的输出函数:print() 1.基础主要学习了变量的赋值,变量名可以疑字母.数字.下划线(_)进行命名,但是不能以数字开头 变量的赋值:变量名 = 变量值 2.模块的导入,和调用 ...
- Python小白学习之函数装饰器
装饰器 2018-10-25 13:49:37 装饰器从字面意思就是用来装饰的,在函数可以理解为:在函数中,我们不想影响原来的函数功能,又想给函数添加新的功能,这时候我们就用到了装饰器. 一般函数操作 ...
随机推荐
- jmeter自动生成报告
从JMeter 3.0开始已支持自动生成动态报告,我们可以更容易根据生成的报告来完成我们的性能测试报告. 如何生成html测试报告 如果未生成结果文件(.jtl),可运行如下命令生成报告: jmete ...
- JMeter和JMeterPlugin的下载安装
JMeter和JMeterPlugin的下载安装 Apache Jmeter是一个100%的纯Java桌面应用,主要是针对web的压力和性能测试,但后来扩展到其他测试领域.Jmeter可以用于测试FT ...
- Angular 4.0 使用第三方类库
使用第三方类库分为以下几步 1. 将第三方类库安装到本地 1) Jquery的命令 npm install jquery --save 2) 安装bootstrap 安装成功后,将文件下载到node_ ...
- [boost] : lightweight_test库
lightweight_test轻量级单元测试框架, 只支持最基本的单元测试, 不支持测试用例, 测试套件的概念, 简单小巧, 适合要求不高或者快速测试的工作. 基本用法 需要包含头文件#includ ...
- Jsoncpp 使用方法大全
Json(JavaScript Object Notation )是一种轻量级的数据交换格式.简而言之,Json组织形式就和python中的字典, C/C++中的map一样,是通过key-value对 ...
- python学习笔记--smtp模块的使用及常见错误处理
SMTPAuthenticationError: (535, 'Error: \xc7\xeb\xca\xb9\xd3\xc3\xca\xda\xc8\xa8\xc2\xeb\xb5\xc7\xc2\ ...
- shell 12输入输出重定向
shell输入/输出重定向 unix系统命令从终端接受输入并将产生的输出发送回终端.命令读取输入的地方,成为标准输入,默认是终端:命令的输出,为标准输出,默认也是终端. command > fi ...
- zabbix批量添加SNMP监听H3C端口检测以及流量图
由于之前网络设备不是很多,监控网络设备接口就直接使用模版中的item来实现了,可是现在公司上线了一大批网络设备,如果要每个网络设备都做模板,添加item......那就该废了,于是迫于压力今天来测试使 ...
- java.lang.IllegalStateException: Fragment bb{42261900} not attached to Activity
A.处理异常java.lang.IllegalStateException: Fragment bb{42261900} not attached to Activity处理方式:由于在线程中调用Fr ...
- 3种方法轻松处理php开发中emoji表情的问题
背景 做微信开发的时候就会发现,存储微信昵称必不可少. 可这万恶的微信支持emoji表情做昵称,这就有点蛋疼了 一般Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面inse ...