0.前言
这篇博文将介绍类的公有属性和私有属性以及访问方法,这只是一个科普篇章,正常的开发环境中全部都是用的公有属性和方法,这里只是科普一下私有属性和方法,不建议在正常开发中使用。
1.公有方法和私有方法的概念和创建及访问
1.1公有属性和方法
正常情况下,类创建的对象可以直接访问的属性和方法。
1.2私有属性和方法
类创建的对象不能直接访问的属性和方法。Python中的私有属性和方法是伪私有,意思是说可以通过一定的方法来访问类的私有属性和方法。
1.3区分公有属性、方法和私有属性、方法。
先看一个实例:
1.定义一个女生类。
2.创建公有属性 名字 和私有属性 年龄。
3.创建一个公有方法和一个私有方法。
4.创建类对象访问这些属性和方法。
代码如下:
class Girl:
def __init__(self):
# 公有属性
self.name = '小美'
# 私有属性
self.__age = 18
# 公有方法
def test(self):
print("公有:名字为[%s]" % self.name)
# 私有方法
def __test(self):
print("私有[{}的年龄是:{}]".format(self.name, self.__age))
# 创建类对象
xm = Girl()
# 打印公有属性
print(xm.name)
# 打印私有属性
# print(xm.__age)
print(xm._Girl__age)
# 调用公有方法
xm.test()
# 条用私有方法
# xm.__text()
xm._Girl__test()
运行结果:
小美
18
公有:名字为[小美]
私有[小美的年龄是18岁]
说明:
私有属性和方法的命名都是名字前加上两个下划线( _ ),代表私有,私有的属性和方法在类的外部是不能直接访问的,如程序中注释的代码,若要访问类的私有属性和方法可以像上面代码中那样处理(访问是用一个下划线( _ )+类名+私有属性名或私有方法名)。
虽然在类的外部不能直接访问,但是在类的内部是可以直接访问的(通过公有访问私有)处理情况如下代码:
class Girl:
def __init__(self):
self.name = '小美'
self.__age = 18
self.__weight = 45
def __test(self):
print('{}的年龄是{}'.format(self.name, self.__age), end='')
def test(self):
self.__test()
print(',体重是%d公斤!' % self.__weight)
xm = Girl()
xm.test()
运行结果:
小美的年龄是18,体重是45公斤!扫描二维码关注公众号,回复: 6204423 查看本文章
说明:
在类的内部是可以直接访问私有属性和调用私有方法的,所以能在类的内部用一个公有方法来访问私有属性和调用私有方法,然后在外部通过这个公有方法访问类的私有属性和方法。
总结
这里只是对私有属性、方法作个科普,具体用在哪些方面,还请自己发掘,不过正常开发中不建议使用私有方法和属性。
时间:2019年5月4日16:45:29