分享

零基础如何自学python?只要你写项目就绕不开这两个知识点

 剩矿空钱 2020-10-17

说明:本文是在上一篇的基础上写的,上一篇图文见:零基础如何自学python? 这些知识点是你进阶的必经之路

1.python函数

所谓的函数,就是具有特定功能的代码块,比如说登录,本身可以使用函数来实现登录的功能。

若要通过函数实现功能,一般都会要两个步骤:

  1. 函数的定义
  2. 函数的调用

1.1 函数的定义

函数的定义一般会包括5个部分,分别是关键字,函数名字,圆括号,函数体,以及返回语句。需要说明的是,有的函数可以不用返回语句 。

零基础如何自学python?只要你写项目就绕不开这两个知识点

1.2 函数的调用

函数的调用其实就是要使用函数这个功能了,如我们实现了一个加法的函数,这时我们要使用它来计算,就需要进行调用。调用时也非常简单,直接在调用处编写函数名即可,如上面的定义的函数,如果调用的话,如下:

零基础如何自学python?只要你写项目就绕不开这两个知识点

那么编写函数的函数从这里也可以看出,通过函数的调用,可以是函数进行重复使用,减少代码量 。

1.3 函数名

函数名可以随便起,但是在同一个文件不能重复起相同的名字 。同时为了函数在调用时被更好的理解,一般其的函数名要有语义,什么是语义呢 ? 简单的说就是通过函数的名字,就知道你这个功能是干什么用的 ? 比如我们要实现的是加法操作,那么就可以使用add来表示 。

有时候函数名字会用到多个英文名,这时要用_将多个英文隔开,同时需要注意的是,函数名字都需要小写 。如:get_info()函数 。

比较规范的函数命名:

  • login()
  • get_info()
  • get_total_score()

不规范的函数命名:

  • xxx()
  • getInfo()
  • GetInfo()

需要说明的是,虽然以上命名的函数不太规范,但是它不会报错,只是在python不提倡如上方式命名。

1.4 函数体

函数体就是具体的业务,如果你定义的函数是登录,那么函数体实现的就是登录的业务,如果你定义的函数是订单,那么函数体实现的就是订单。

零基础如何自学python?只要你写项目就绕不开这两个知识点

函数的执行体其实并非以上这么简单 。一般来说,函数体其实就是由多行代码组成的业务逻辑代码 。

1.5 函数的返回

函数的返回是用于退出该函数,函数的返回使用return来表示,也就是说遇到了return语句,意味着一个分支的结束或者整个一个业务的结束 。

return语句后面的值是非常灵活的,它不仅可以跟任意数据类型,而且也支持表达式,函数。如果return后面没有任何值,默认为None

  • return None,如果是None,可以忽略不写 。
  • return value,value可以是代码块中计算出来的值,也可以是一个表达式 。
  • return val1,...,valn。return也可以返回多个值。
零基础如何自学python?只要你写项目就绕不开这两个知识点

1.6 函数的参数

函数的参数,就是圆括号()内定义的名字;为了能使函数更好的满足各种业务需求,就要求函数的参数接收不同类型的数据;不同个数的数据,这时函数的参数就派上用场了 。在函数的参数中,一般包括如下四种参数:

  • 位置参数
  • 默认参数
  • 关键字参数
  • 可变参数

形式参数和实际参数

在介绍函数的参数之前,就不得不提到形式参数和实际参数 。

  • 形式参数,是在括号内的参数就叫形式参数,也称形参
  • 实际参数,调用函数时,实际传入到函数内的值 ,也称实参。
零基础如何自学python?只要你写项目就绕不开这两个知识点

位置参数

所谓的位置参数,主要是指调用函数时的参数数量和位置要和定义的形参中的一致。传多或传少都会报异常(TypeError)。

零基础如何自学python?只要你写项目就绕不开这两个知识点

关键字参数

使用位置参数有个弊端就是,如果参数很多的话,你就很难记住那个参数在前,那个参数在后,这样可能会导致本来要给第一个参数传值,结果传给了第二个参数 。

那么,使用关键字参数就可以解决以上的问题 。

关键字参数是指传值时要以key=value形式,key代表函数中的形参名称,value就是传递给函数的实际的值。

零基础如何自学python?只要你写项目就绕不开这两个知识点

默认参数

如果函数调用时,传递的实际参数经常会是一个值,那我们就可以给这个参数设置默认值 。如果设置默认参数,需将在位置参数后 。

零基础如何自学python?只要你写项目就绕不开这两个知识点

可变化参数

这里的可变化参数指的传递参数的数量可以发送变化,比如我可以传递3个参数,也可以传递6个,甚至更多 。

可变化参数有两种类型:

  • 分别是用来接收列表形式的可变参数,调用函数时跟位置参数一样
  • 用来接收字典形式的可变参数 。调用函数时跟为关键字参数一样。

那么可变参数和位置参数,关键字参数最大的不同就是传递参数的数量不受限制 。

以下为列表形式的可变参数:

零基础如何自学python?只要你写项目就绕不开这两个知识点

以下为字典形式的可变参数:

零基础如何自学python?只要你写项目就绕不开这两个知识点

也可以将两种可变形式的参数结合起来使用

零基础如何自学python?只要你写项目就绕不开这两个知识点

1.7 匿名函数

在前面介绍的函数中,每个函数都会有一个唯一的名称用于标识,在python语法中还有一种无名字的函数,简称匿名函数。它使用关键字lambda表示,普通的函数若可以用一行进行实现的话,那么该函数就可以使用匿名函数来代替。

零基础如何自学python?只要你写项目就绕不开这两个知识点

2.面向对象

面向对象编程(Object-oriented Programming,简称 OOP),面向对象是一种编程思想。

面向对象将现实的事物抽象出来,然后抽象成 类 ( class ),给类定义属性和方法后,再将类实例化成 实例 ( instance ) ,通过访问实例的属性和调用方法来进行使用。

2.1 类的定义

类是具有相同特性(数据元素)和行为(功能)的对象的抽象。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,

语法格式:

class 类名():    多个(≥0)类属性...    多个(≥0)类方法...

从上图我们可以看出:

  • 类 : 通过class 类名 申明一个类。
  • 属性 : 在类中可以申明变量,类中的变量称为属性
  • 方法:在类中的函数称为方法

2.2 类的实例

当我们创建一个类后,这个类并不能直接使用,必须需要创建具体的对象才能使用类中的属性和方法。

零基础如何自学python?只要你写项目就绕不开这两个知识点

创建类的对象,也叫类的实例化对象 ,或者类申明对象 。 同时类的对象可以申明多个对象 。每个对象就是类的一个具体化实例 。

2.3 构造方法

虽然通过以上案例可知,通过实例化的对象直接调用类属性,但是一般不会这么写,理由是直接调用的属性如果写错会报错,而且也可以通过构造方法来赋值更加方便。

python的构造方法使用 __init__() 方法来表示,每次调用类的时候会自动被调用 ,主要用来初始化数据。

零基础如何自学python?只要你写项目就绕不开这两个知识点

2.4.self介绍

python规定,类内的方法,至少要包括一个参数,这个参数名就是self.当然如果你改成其它的名称也不会报错 。 只是python中这只是一种约定的俗称。

这个self其实就是代表对象自己,当同一个类中实例化了多个对象,当不同的对象调用类中的方法时,就会把对象的引用作为第一个参数自动传给被调用的方法.这样python解释器就就知道到底是哪个对象调用的该方法.

零基础如何自学python?只要你写项目就绕不开这两个知识点

2.5 类的方法

在python中,类的方法包括普通方法,静态方法,类方法。

普通方法:就是上面案例中使用到的方法,在方法内都会默认带个self参数,且只能被对象调用;

静态方法:在方法前使用@staticmethod装饰的且不带self参数的方法叫静态方法,类的静态方法可以有参数也可以没有参数,直接使用类名调用

类方法:默认带个cls参数,可以被类和对象调用,需要在方法前加@classmethod装饰器

零基础如何自学python?只要你写项目就绕不开这两个知识点

普通方法

零基础如何自学python?只要你写项目就绕不开这两个知识点

静态方法

零基础如何自学python?只要你写项目就绕不开这两个知识点

类方法

2.6 类的变量

在类中的变量主要包括类变量,实例变量和局部变量,其主要区别就是作用范围不同 。作用范围从大到小来进行排序的话依次是:类变量>实例变量>局部变量

类变量

  • 类变量是定义在类内,方法之外的变量 。
  • 类方法的调用方式有 2 种,既可以使用类名直接调用,也可以使用类的实例化对象调用。
零基础如何自学python?只要你写项目就绕不开这两个知识点

类变量

实例变量

  • 实例变量指的是在任意类方法内部,以“self.变量名”的方式定义的变量,其特点是只作用于调用方法的对象。
  • 定义的实例变量可以在类中的不同方法间共享数据 。
  • 实例变量只能通过对象名访问,无法通过类名访问。
零基础如何自学python?只要你写项目就绕不开这两个知识点

实例变量

局部变量

  • 局部变量是直接在方法内定义的变量且以“变量名=值”的方式进行定义
  • 局部变量的使用范围也仅限于所定义的方法内
零基础如何自学python?只要你写项目就绕不开这两个知识点

局部变量

2.7 封装

面向对象有三大特性,分别是分装,继承和多态 。

那么什么是封装呢 ? 简单的来说就是给数据和行为设置权限,从而保护隐私数据。也就是说该让用户访问到的数据,我们可以开放给用户,让用户可以直接使用,不该让用户访问的数据,我们可以通过将数据隐藏起来,从而达到无法访问的目的。

就好比我们使用的鼠标和键盘,至于鼠标内部的零件长什么样,我们不知道,也不用关注,只需要将按键和操作的部件提供给用户即可。那么这个就是一个封装的例子 。

python的封装其实就是将不该让用户访问的数据设置为私有的,从而达到隐藏的目的。

  • 默认情况下,python类的变量和方法都是共有的,他们的名称前都没有下划线
  • 如果类中的变量和函数,其名称以双下划线“__”开头,则该变量和函数就为私有的,只有在类内访问 。
  • 如果是以_下划线开头的方法和属性,则是无法导入的。
零基础如何自学python?只要你写项目就绕不开这两个知识点

上面通过_设置的私有变量和方法还能被访问,这是因为在python中并不会真正的限制你调用,这种设置更多的是一种约定的俗称 。

以下是将变量和方法通过双下划线设置

零基础如何自学python?只要你写项目就绕不开这两个知识点

注意:以上说的是并不能被直接被调用,而非不能被调用 。

2.8 继承

类的继承是两个或多个类产生了一定的关系,其中一个是父类,另外一个就是子类。这就像生活中父与子的关系 。在python中的子类会继承会获得父类的所有非私有的功能 。对于父类中的功能,都是拿来即用。

零基础如何自学python?只要你写项目就绕不开这两个知识点
零基础如何自学python?只要你写项目就绕不开这两个知识点

继承

2.9 多态

有时候我们在父类中定义了一个方法,但是由于父类的方法又不满足要求,我们想在父类的方法基础上进行扩展,怎么办呢 ? 这时就用到了多态 。要使用到多态就必须满足两个条件:

  1. 继承:多态一定是发生在父类和子类之间的。
  2. 重写:子类重写父类的方法,注意两个方法的名字一定是一样的,否则不叫重写 。
零基础如何自学python?只要你写项目就绕不开这两个知识点

多态

那如果想通过子类对象调用父类的方法呢 ? 就可以通过super关键字来进行调用

零基础如何自学python?只要你写项目就绕不开这两个知识点

本文未完待续,欢迎感兴趣的同学关注和转发,谢谢 。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多