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地震数据可视化的具体代码,供大家参考,具体内容如下参考源码:seisplot准备工作:在windows10下
- python3.4以上的版本中,是默认自带pip的。查看pip的方法下载安装好python后,进入命令行,输入pip -V,即可查看pyth
- 使用运算符“+”PHP的数组运算符“+”可以用来联合两个(或
- 我们大家都知道CSS功能的强大,而有关CSS基本的排版控制虽然已有详细的使用说明和参考教程,但还有许多丰富的CSS排版能力,是很少能查到的。
- 一、程序功能:为Repeater实现分页二、窗体设计:1、新建ASP.NET Web应用程序,命名为Repeater2,保存路径为http:
- 突如其来想知道一下 python 如何修改文件的属性(创建、修改、访问时间),于是就去网上搜集了可行方案,也就有了这篇博客方案一from w
- 前言本文主要记录python下音频常用的操作,以.wav格式文件为例。其实网上有很多现成的音频工具包,如果仅仅调用,工具包是更方便的。更多p
- 在我们学习的过程中会遇到这么样的问题,就是在我们学习的过程中会发现需要分页处理,这里呢,给大家介绍书上说的分页。@app.route(
- startswith()方法Python startswith() 方法用于检查字符串是否是以指定子字符串开头如果是则返回 True,否则返
- 而每次查询分析器寻找路径时,并不会每一次都去统计索引中包含的行数,值的范围等,而是根据一定条件创建和更新这些信息后保存到数据库中,这也就是所
- github是一个项目的存储仓库,使用的时候非常的方便,下面就介绍一下管理 github 仓库的软件安装,windows 下的 git 安装
- 问题1:解决没有NVSMI文件夹去英伟达官网下载显卡驱动,对显卡进行升级即可。问题2:nvidia-smi‘ 不是内部或
- 在安装pip前,请确认win系统中已经安装好了python,和easy_install工具,如果系统安装成功,easy_install在目录
- 在pyqt5编程过程中,经常会遇到输入或选择多个参数的问题,把多个参数写到一个窗口中,主窗口会显得很臃肿,所以,一般是添加一个按钮,调用对话
- Bulk 方式进行目标数据的Load,是Informatica提供的一种高性能的Load数据方式。它利用数据库底层机制,依靠调用数据库本身提
- 图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。在噪声的概念中,通常采用信噪比(Signal-Noise Rate, S
- 这篇博客主要是为了学习Python和PyQt,因为对棋类游戏比较热衷,所以从规则较简单的五子棋入手,利用PyQt5实现图形界面,做一个可以进
- 本文实例讲述了Python自定义线程池实现方法。分享给大家供大家参考,具体如下:关于python的多线程,由与GIL的存在被广大群主所诟病,
- 因为我博客使用的Disqus代理服务下线,博客的评论系统可能有一阵子没有工作了。惭愧的是我竟然最近才发现,我的工作环境一直是没有GFW存在的
- 这几天研究HUE,这个东西是基于Django开发的,于是又看了一眼Django,学着写个demo。微软开源的vscode在业界反应不错,以前