Python入门学习之类的相关知识总结

作者:GalaxyerKw 时间:2021-12-18 10:02:38 

前言

Python是面向对象的程序设计(Object Oriented Programming)。

面向对象的程序设计的一条基本原则是:

计算机程序由多个能够起到子程序作用的单元或者对象组合而成。

面向对象的程序设计的一个关键性概念是:

数据以及数据的操作(即函数方法)封装在一起。

这个概念对于接触C++的我来说已经很熟悉了。就是“类”Class。
Python完全支持所有面向对象的基本功能,比如:

“封装”、“继承”、“多态”以及对基类方法的“覆盖”或“重写”。

下面请由我慢慢道来。

一、类的定义和使用

在C++中,类是“结构体”的衍生。在Python中,类作为一个完全独立的概念出现。

1.类的定义:


class ClassName:
......

2.初始化函数和self参数:【非常重要!!!!】


def __init__(self,a,b,......):
self.变量1=a
self.变量2=b
......

①Python在初始化函数里定义“变量”。
当我们要使用这个类的时候,可以直接对初始化函数里的变量赋值。
当然,可以不写形参a,b等等,直接给变量赋值。
②self参数表征这个类。
在类中写函数(即方法)时,都必须传入self参数。之后会举例说明。

【由此,我们可以发现,python中的init初始化函数与C++中的构造函数如出一辙,其原理其实是一样的】

3.外部变量使用类:即调用类的初始函数


class A:
def __init__(self,p,q):
self.a=p
self.b=q

example=A(1,2)  #调用初始化函数,传入形参p=1,q=2,此时标明example使用了A类
print(A.a)      #输出1
print(A.b)      #输出2

4.限制变量的适用范围:私有or公有

我们知道,C++类中的变量有public、protected和private三种。Python中当然也有,只是书写方式不同。
特别注意,private变量“类内”和“类外”的调用方法是不同的。
在类外获取private变量值的方法有两种:

①通过特定“接口”:即调用类内函数方法,在类内通过self实现对private变量的使用
②通过特殊方法:example._ ClassName(类名) __var(变量)

如果直接无脑调用private,程序出现AttributeError错误。当然也不能对直接对private变量进行该值和赋值的操作。


class A:
def __init__(self,a,b,c):
self.one=a      #没有修饰,等价于public
self._two=b     #加一条下划线,等价于protected
self.__three=c  #加两条下划线,等价于private
def get_all(self):
print(self.one)     #类内的调用方式:格式与定义相同
print(self._two)
print(self.__three)

example=A(1,2,3)
example.get_all()         #通过“接口”获取private值
print(example._A__three)  #通过特殊方法获取private值

来源:https://blog.csdn.net/GalaxyerKw/article/details/117198771

标签:Python,类
0
投稿

猜你喜欢

  • Vue 3.0中jsx语法的使用

    2023-07-02 17:07:17
  • 用js来解决ajax读取页面乱码

    2024-04-18 10:56:04
  • Vue实现自定义字段导出EXCEL的示例代码

    2024-04-27 16:12:09
  • python类和继承用法实例

    2021-07-24 17:31:30
  • 不同情况下修复Access数据库的实用方法

    2008-11-28 16:18:00
  • python3 pygame实现接小球游戏

    2023-07-28 18:04:21
  • mpvue+vant app搭建微信小程序的方法步骤

    2024-05-29 22:22:42
  • 浅谈python opencv对图像颜色通道进行加减操作溢出

    2021-12-26 11:45:23
  • Bootstrap Table 删除和批量删除

    2024-05-25 15:17:21
  • 浅谈Python的条件判断语句if/else语句

    2021-03-06 12:11:02
  • asp如何显示存储在数据库BLOB字段中的图像?

    2010-06-08 09:31:00
  • python打包成so文件过程解析

    2022-03-19 18:08:46
  • Gregarius中文日期格式问题解决办法

    2023-11-18 09:51:00
  • 了解WEB页面工具语言XML(五)好处

    2008-09-05 17:19:00
  • python连接远程ftp服务器并列出目录下文件的方法

    2023-10-20 10:35:04
  • 利用python库在局域网内传输文件的方法

    2021-01-29 03:41:48
  • Mysql数据库存储过程基本语法讲解

    2024-01-20 04:46:35
  • 用JavaScript实现PHP的urlencode与urldecode函数

    2023-11-23 08:18:14
  • oracle 安装与SQLPLUS简单用法

    2009-06-10 17:49:00
  • Bootstrap编写一个兼容主流浏览器的受众门户式风格页面

    2024-05-02 17:32:01
  • asp之家 网络编程 m.aspxhome.com