Python学习笔记:基础(二)

Python学习笔记:基础(二)

一、函数

完成某一特定功能的小模块。
可以实现参数的赋值,更灵活。
函数文档:‘ … ’,便于理解函数的含义
匿名函数:lamda函数

  • 递归:
    条件:(1)有终止条件;(2)调用自身函数。

二、文件

  • 打开文件
    打开文件函数:open( ),有如下几种模式:
    在这里插入图片描述文件对象操作方法:
    在这里插入图片描述

三、异常处理

  • 常见异常
常见异常
AttributeError尝试访问未知的对象属性
AssertionError断言语句失败
IndexError索引超出序列范围
OverflowError数值超出最大限制
SyntaxErrorpython语法错误
  • try-except语句
    try:
try:
	检测范围
except Exception [as reason]:
	出现异常后的处理代码
finally:
	无论如何都会被执行的代码

四、对象

对象=属性+方法。
对象的特征:封装、继承、多态。
对象是类的实例,类的命名用大写字母开头。
Python是面向对象编程(Object Oriented)的,Python无处不对象。

在这里插入图片描述

4.1 类的属性

属性名与方法名重复,属性会覆盖方法。
属性用名词,方法用动词。

  • 共有和私有
    Python中定义私有变量,只需要在变量名/函数名前加上两个下划线‘__’,那么这个变量/函数就变成私有的了。 → \to 伪私有

4.2 类的方法

类的方法分为内部方法和外部方法。
内部方法共有:

>>> dir(a)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

以下是几种常见的类的内部方法。

4.2.1 类的构造与析构方法:
  • self
    self:类可以实例得到许多对象,self就是指这个对象,是区分同一类下不同对象的标志。

  • init()
    init(self):构造函数,只要实例化一个对象,该方法就是在实例的时候自动运行。
    init(self,parm1,parm2,…):通过重写这个方法来自定义对象的初始化操作。parm1,parm2,…成为该对象的默认参数。
    只有当需要对实例对象进行初始化操作的时候,才需要显式写出_init()_函数。

  • new()
    new: 对象的创建,是一个静态方法,第一个参数是cls。(想想也是,不可能是self,对象还没创建,哪来的self)
    先有创建,才有初始化。即先__new__,而后__init__。

  • init()
    init(self):构造函数,只要实例化一个对象,该方法就是在实例的时候自动运行。不需要显式写出。

    init(self,parm1,parm2,…):通过重写这个方法来自定义对象的初始化操作。parm1,parm2,…成为该对象的默认参数。
    只有当需要对实例对象进行初始化操作的时候,才需要显式写出_init()_函数。
    _init()_函数不可有返回。

  • del()
    python的垃圾回收机制。

4.2.2 类的表现方法:

init()函数return为空,所以类有另外的表现方法: str __ 和 __ repr __方法。

class MyClass() :
    def __str__(self) :
        return "我是MyClass的一个实例"
    def __repr__(self) :
        return "这回连print都省了" 
a = MyClass()

>>> print(a)
我是MyClass的一个实例
>>> a
这回连print都省了

类可以做算术运算。

4.3 类的继承

子类中定义与父类相同名字的方法/属性,会被覆盖。
super函数用于继承与父类方法相同的函数。
不要试图在一个类中定义所有能想到的特性和方法,应该用继承和组合来加以拓展。

class DerivedClassName(BaseClassName):
	...

五、模块

模块就是程序,模块将程序分块封装,提高程序可读性。

  • 模块的导入:

    方法1import 模块名(不写后缀.py)
    方法2from 模块名 import 函数名
    		from 模块名 import * (导入模块中所有函数/变量)
    方法3import 模块名 as 简写的新名字
    
  • if __ name__="__ main __":
    该语句所在的模块,是正在运行的主模块/主函数。

  • 搜索路径
    待导入的模块一般需要和需要的程序模块在同一目录下,若没有在,需要将目录导入搜索路径中。

import sys

sys.path						# 程序所在路径
sys.path.append("待添加路径")		# 待添加路径
  • 包(package)

创建包的步骤:

在这里插入图片描述必须在文件夹中创建一个__init__.py文件,告诉Python这是个包。

包的调用:

import 包名.模块名
  • OS模块
    OS模块:操作系统模块

    作用
    istdir(path=’’)列出指定目录下所有文件名
    akedir(path)创建单层目录
    akedirs(path)创建多层目录
    emove(path)删除目录文件
    mdir(path)删除单层目录
    s.path.join(path1,path2)将path1、path2各部分合并成一个路径
    s.path.split()分割文件名和路径,返回(f_name,f_name)元组。

六、下划线的5种含义

下划线类型含义
单前下划线_var单个下划线前缀有一个约定俗成的含义:以单个下划线开头的变量或方法仅供内部使用(私有变量)。但这不是Python强制规定的,是一种约定。
单末尾下划线:var_一个变量的最合适的名称已经被一个关键字所占用。 因此,像class或def这样的名称不能用作Python中的变量名称。 在这种情况下,你可以附加一个下划线来解决命名冲突
双前导下划线:__var双下划线前缀导致Python解释器重写属性名称,以避免子类中的命名冲突,叫做名称修饰 —解释器更改变量的名称,以便在类被扩展的时候不容易产生冲突。
双前导和末尾下划线:__ var __Python类的内部方法
单下划线:_(1)单个独立下划线是用作一个名字,来表示某个变量是临时的或无关紧要的。
(2)“_”是个特殊变量,表示由解释器评估的最近一个表达式的结果。

from 《零基础入门学习Python》(小甲鱼)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值