Python从入门到高手(内部资源-配学习资料)_哔哩哔哩_bilibili
# 私有化
# 封装:1.私有化属性 2.定义公有set和get方法
# __属性:就是将属性私有化,访问范围仅仅限于类中
'''
1.隐藏属性不被外界随意修改
2.可以修改:通过函数
def setXXX(self,XXX):
3.筛选赋值内容
if XXX是符合条件
赋值
else:
不赋值
3.如果想获取某一个属性
使用get函数
def getXXX(self):
return self.__XXX
'''
class Student:
__age = 18 # 类属性
def __init__(self, name, age):
self.__name = name # 长度必须6位
self.__age = age
self.__score = 25
# 定义公有set(赋值)和get(取值)方法
def setAge(self, age):
if age > 0 and age < 120:
self.__age = age
else:
print('年龄不在规定的范围内')
def getAge(self):
return self.__age
# 修改名字的时候,长度必须6位
def setName(self, name):
if len(name) == 6:
self.__name = name
else:
print('长度不是6位')
def getName(self):
return self.__name
def __str__(self):
return '姓名:{},年龄:{},考试分数:{}'.format(self.__name, self.__age, self.__score)
yupeng = Student('yupeng', 18)
print(yupeng)
yupeng.age = 21
yupeng.__score = 95 # 赋值不成功
print(yupeng)
yupeng.setAge(50)
print(yupeng.getAge())
-----------------------------------------------------------------------------------
class Student:
__age = 18 # 类属性
def __init__(self, name, age):
self.__name = name # 长度必须6位
self.__age = age
self.__score = 25
# 定义公有set(赋值)和get(取值)方法
def setAge(self, age):
if age > 0 and age < 120:
self.__age = age
else:
print('年龄不在规定的范围内')
def getAge(self):
return self.__age
# 修改名字的时候,长度必须6位
def setName(self, name):
if len(name) == 6:
self.__name = name
else:
print('长度不是6位')
def getName(self):
return self.__name
def __str__(self):
return '姓名:{},年龄:{},考试分数:{}'.format(self.__name, self.__age, self.__score)
# attribute: setName getName __str__ __init__
yupeng = Student('yupeng', 18)
print(yupeng)
print(dir(Student))
print(dir(yupeng))
print(yupeng._Student__a