Python类 解释

类:

1.代码:
#!/usr/bin/python3
class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
x = Complex(3.0, -4.5)
print(x.r, x.i) # 输出结果:3.0 -4.5

2.self 解释:
self代表类的实例,而非类

类的方法与普通的函数只有一个特别的区别:
它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。

self 不是 python 关键字,我们把他换成 runoob 也是可以正常执行的。

在类的内部,使用 def 关键字来定义一个方法,
与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。


3.python私有方法和私有属性
https://blog.csdn.net/liuskyter/article/details/80387726
Python默认的成员函数和成员变量都是公开的,Python 私有属性和方法没有类似别的语言的public,private等关键词来修饰。
在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了

私有属性
如果有一个对象,当需要对其进行修改属性时,有2种方法
对象名.属性名 = 数据 ---->直接修改
对象名.方法名() ---->间接修改

为了更好的保存属性安全,即不能随意修改,一般的处理方式为
1.将属性定义为私有属性
2.添加一个可以调用的方法,供调用

python 代码:
class Person(object):
def __init__(self, name):
self.__name = name

def get_name(self):
return self.__name

def set_name(self, new_name):
if len(new_name) >= 5:
self.__name = new_name
else:
print("error:名字长度需要大于或者等于5")

p = Person("skyter")

p.set_name("wanger")
print(p.get_name())

p.set_name("lisi")
print(p.get_name())

 

4.继承
Python 同样支持类的继承,如果一种语言不支持继承,类就没有什么意义

# 单继承示例(student 继承 people)
class people:

class student(people):

# 多继承:
Python同样有限的支持多继承形式

# 多重继承
class sample(speaker,student):


5.类的专有方法:
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__truediv__: 除运算
__mod__: 求余运算
__pow__: 乘方

6.运算符重载
Python同样支持运算符重载,我们可以对类的专有方法进行重载
对运算符赋予不同的含义

posted @ 2022-10-30 00:47  kuaiquxie  阅读(28)  评论(0编辑  收藏  举报