python笔记2(函数 面向对象 文件编程 上下文管理器)
记录python听课笔记
文章目录
- 记录python听课笔记
- 一,函数
- 1.介绍python里的函数
- 2.用户自定义函数
- 3.变量的作用域
- 4.参数的传递
- 5.参数的默认值
- 6.向函数内部批量传递数据
- 二,Python面向对象的编程
- 1.声明类
- 2.构造函数和析构函数
- 3.继承
- 三,文件
- 1.读取创建好的mypython.txt并打印里的内容
- 2.with语句
- 3.上下文管理器
一,函数
1.介绍python里的函数
实现某种特定功能的代码块
程序简洁,可重复调用、封装性好、便于共享
系统函数和用户自定义函数
print(pow(2,3)) #幂函数 2^3
print(round(3.1415,3)) #四舍五入函数,第二个参数是要保留多少小数位
print(round(3.56))
print(divmod(5,3)) #将商和余数都放进元组中
2.用户自定义函数
def add(a,b): #加函数c=a+breturn c #可以返回一个或多个
print(add(1,2))
def add_mul(a,b): #计算加和乘add=a+bmul=a*breturn add,mul #返回多个用,隔开
x,y=add_mul(1,2) #用xy来接收返回值
print("add:",x,";mul:",y)
3.变量的作用域
局部变量(Local Variable):在函数中定义的变量,仅在定义它的函数内部有效。
全局变量(Global Variable):在函数体之外定义的变量,在定义后的代码中都有 效,包括在它之后定义的函数体内。
a=100
def setNumber():a=9a=a+1print("setN:",a) #10
setNumber()
print(a) #100
4.参数的传递
按值传递:形参和实参分别存储,相互独立。
在内部函数改变形参的值时,实参的值不会随之改变。
def func(num): num+=1 #函数内部改变形参的值print("num:",num) #打印形参 num:11
a=10
func(a) #调用函数,a为实参
print("a:",a) #a:10
5.参数的默认值
当函数中有多个参数时,参数的默认值只能从最右面开始依次设置
def 函数名 (参数1=默认值,参数2=默认值…):
函数体
def add(a,b=2):return a+b
print(add(1)) #第二个参数默认值b=2
print(add(2,3)) #b=3 默认值实效
6.向函数内部批量传递数据
可以使用列表、字典变量作为参数,向函数内部批量传递数据。
当使用列表或字典作为函数参数时,在函数内部对列表或字典的 元素所做的修改,会改变实参的值。所以一般使用列表和字典的副本list[::],避免修改实参的值
def sum(list): #当使用列表字典当形参时函数内部的改变会改变实参sum=0for x in list:sum+=xreturn sum
list=[1,2,3,4,5]
print(sum(list))
二,Python面向对象的编程
1.声明类
class 类名: 类名首字母大写
类属性=初值
方法(参数列表)
方法中必须有一个参数self,而且它是参数列 表中的第一个参数
由同一个类可以生成很多个对象,每一个对象, 都有一个专属的self,代表这个对象自身
class Person:money=10000def say_hello(self): #定义函数加:print("hello!")
#创建对象 对象名=类名()
mingge=Person()
print(mingge.money)
mingge.say_hello()
#添加对象属性只属于该对象
mingge.major="computer"
print("mingge's major is:",mingge.major)
#修改类属性 全改变
xiaoqiang=Person()
Person.money=9000
print(mingge.money,xiaoqiang.money)
#删除对象 del 对象名
del xiaoqiang
print(mingge.money,xiaoqiang.money) #会出错
2.构造函数和析构函数
构造函数:在创建对象时,用来完成初始化操作
当创建对象时,系统会自动调用构造函数。可以把对成员变量赋初值的语句写在构造函数中,从而保证每个变量 都有合适的初始值。
析构函数:在清除对象时,回收和释放对象所占用的资源。
在Python中,构造函数和析构函数也可以省略。
class Person:def __init__(self,name,age,gender="男"):self.name=nameself.age=ageself.gender=genderdef __del__(self):print("Bye bye-from",self.name)def printInfo(self):print("姓名:",self.name,"年龄:",self.age,"性别:",self.gender)
mingge=Person("明哥",31) #创建对象时将参数传给构造函数
xiaoqiang=Person("小强",23,"男")
mingge.printInfo()
xiaoqiang.printInfo()
del mingge #删除对象时会调用析构函数
del xiaoqiang
3.继承
继承(inheritance):子类能够继承父类中所有非私有的成员变量和成员函数。
class 子类名(父类名)
类属性=初值
方法(参数列表)
class Person():money=10000def say_hello(self):print("hello!")
class Teacher(Person):pass
amy=Teacher()
print(amy.money)
amy.say_hello()
三,文件
1.读取创建好的mypython.txt并打印里的内容
f=open("mypython.txt")
print(f.read())
readline读一行指针向下转移一行
f=open("mypython.txt")
print(f.readline(5)) #读取第一行的前五个 也就是pytho
print(f.readline()) #还是第一行之前结束的位置 也就是n
print(f.readline()) #第二行
末尾写入并读取
f=open("mypython.txt","a+") #每次执行都会在后面追加一次hello
#f.write("hello")
f.close()
f=open("mypython.txt","r")
print(f.readline())
print(f.readline())
f.close()
2.with语句
3.上下文管理器
上下文管理器是Python中的一种协议,它保证了每次代码执行的一致性
一旦进入上下文管理器,就一定会按照规定的步骤退出 如果合理的设计了退出上下文管理器的步骤,就能够很好的处理异常。
上下文管理器被最多用到的场景是资源清理操作。
实现上下文管理器,只要在类定义时,实现__enter__()方法和__exit__()方法即可
python笔记2(函数 面向对象 文件编程 上下文管理器)相关推荐
- 第十章、python字符串操作与with语句及上下文管理器------字符串的匹配与查找
目录 10.1 python的字符串的操作 10.1.1 python的字符串的匹配与查找 (1)实例 (2)find(或rfind).index(或rindex)与match.search.find ...
- Python中必须知道的知识点:上下文管理器
在Python中让自己创建的函数.类.对象支持with语句,就实现了上线文管理协议.我们经常使用with open(file, "a+") as f:这样的语句,无需手动调用f.c ...
- 读书笔记:《流畅的Python》第15章 上下文管理器和else块
# 第15章 上下文管理器和else块""" 本章内容提要:with语句和上下文管理器for while try语句的else子句 """# ...
- python上下文管理器
什么是上下文管理器? 基本语法 with open('test.txt') as f:print f.readlines() 1. 上下文表达式:with open('test.txt') as f: ...
- 深入理解 Python 中的上下文管理器
图|李思瑶 文|MING 提示:前面的内容较为基础,重点知识在后半段. with 这个关键字,对于每一学习Python的人,都不会陌生. 操作文本对象的时候,几乎所有的人都会让我们要用 with op ...
- python上下文管理关键字_详解 Python 中的 with 与 上下文管理器
with 这个关键字,对于每一学习Python的人,都不会陌生. 操作文本对象的时候,几乎所有的人都会让我们要用 with open ,这就是一个上下文管理的例子.你一定已经相当熟悉了,我就不再废话了 ...
- python 上下文管理器、 else 块、@contextmanager
文章目录 1. else 2. with上下文管理器 3. contextlib模块实用工具 4. @contextmanager 装饰器 learn from <流畅的python> 1 ...
- 此上下文中不支持函数定义。请在代码文件中创建函数。_深入解析Python上下文管理器,让你不再迷茫!...
1. 上下文管理器 一个类只要实现了 __enter__() 和 __exit__() 这个两个方法,通过该类创建的对象我们就称之为上下文管理器. 上下文管理器可以使用 with 语句,with语句之 ...
- 云学python (第5章对象带你飞之储存 上下文管理器pickle 包)《vamei-从Python开始学编程》 笔记
2.上下文管理器 文件操作常常和上下文管理器一起使用.上下文管理器(context manager)用于规定某个对象的使用范围.一旦进入或者离开该使用范围, 则会有特殊操作被调用,比如为对象分配或者释 ...
最新文章
- excel 运算符在php里不起作用,目标单元格引用无效是什么意思
- ajax 的理论以及需要的常用参数
- python——类和对象之__dict__属性的使用
- axure如何页面滑动时广告位上移_新手APP运营如何做广告位投放
- CGAL4.4+VC2008编译
- python有几种容器_Python中几种内置的容器(Containers)类型:列表、字典、集合和元组的比较和该注意的点...
- 远程桌面管理工具Remote Desktop Connection Manager
- win2008服务器共享文件夹权限设置,win2008文件夹共享权限怎么设置
- STM32F401RE Nucleo 在 keil MDK上的使用
- AX 2009 删除已经发出领料单的订单行
- 虚拟资源项目是什么?依靠虚拟资源项目月入万元能实现吗?
- 快速编程的捷径——计算机达人成长之路(40)
- 3y开发都不的不写单元测试,然后被被批了
- 骁龙888发布,小米11首发,有14家厂商首批搭载!
- Xmind基础教程-保存到印象笔记
- 计算机组成原理实验-logisim实现自动售糖机
- ipad 导入电脑中文件
- Spring Bean 是什么?
- IOS内购SDK和U7SDK接入文档
- 源码分析如何注解使用AOP
热门文章
- 聚焦自动驾驶环境感知,AVVision Special Session (ICAS'21) 征稿开启
- 单图像三维重建、2D到3D风格迁移和3D DeepDream
- Deep Manta:单目图像下2d到3d由粗到精的多任务网络车辆分析
- java基于servlet的文件上传
- Tensorflow杂记
- Advanced Sci | 打破生成式深度学习限制:低量数据下的“one-shot”药设计法
- SQLite | Python3导入csv到SQLite3
- python投掷骰子实验_Python小程序--模拟掷骰子
- mac txt 换行符_推荐两款免费的网页代码编辑器(Win和Mac系统)
- 普鲁克分析(Procrustes Analysis)评估物种-环境/功能关联度的一个示例