Python3基础:08_03_面向对象编程(OOP)——私有属性方法和公有属性方法

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公斤!

说明:
  在类的内部是可以直接访问私有属性和调用私有方法的,所以能在类的内部用一个公有方法来访问私有属性和调用私有方法,然后在外部通过这个公有方法访问类的私有属性和方法。



总结

  这里只是对私有属性、方法作个科普,具体用在哪些方面,还请自己发掘,不过正常开发中不建议使用私有方法和属性。


时间:2019年5月4日16:45:29


你可能感兴趣的:(Python3基础部分)