class student:
age = 0
name = ""
score = 0
# python中的类也是有那些访问属性的
# 上面的那三个属于类的公有属性
# 在类的内部调用私有方法或私有成员必需使用self关键字self.__名字
__pri = 3 # 双下划线开头的成员为私有成员,不能在类的外部被访问
_pro = 2 # 一个下划线是保护成员
def getPri(self): # 在定义一个类的方法的过程中,类的方法必需包含self参数,而且self参数要放在第一位
return self.__pri # self就相当于C++中的this指针
def setPri(self, pri):
self.__pri = pri
def fun(self):
print('Hello World')
# 下面来看看类的专有方法
# 类的专有方法无非就是构造函数,析构函数,或者一些类似于C++重载运算符的函数
def __init__(self, name, age, score): # 构造函数
self.name = name
self.age = age
self.score = score
def __del__(self): # 析构函数
del self.name
del self.age
del self.score
print('__del__')
def __add__(self, other): # 这就类似于是一个重载运算符,而且只能重载一个运算符
return self.age + other.age
def __repr__(self): # 打印,转换
return self.name
def __setitem__(self, key, value): # 按照索引赋值
if key == 1:
self.name = value
else:
self.score = value
def __getitem__(self, item):
if item == 1:
return self.name
else:
return self.score
a = student('lyst', 18, 100) # 实例化一个对象a,并调用了构造函数
a.fun() # 调用类中的函数
print("student's age is ", a.age)
print(a._pro)
a.setPri(5) # 可以忽略第一个self参数
print(a.getPri())
b = student('wth', 19, 100)
print(a + b)
print(a)
# 按照索引赋值和按照索引获取值
a.__setitem__(1, "liuinstein")
print(a.__getitem__(1))
首发于我的个人网站:
点击打开链接
转载请注明原文地址: https://ju.6miu.com/read-1296141.html