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