美文网首页
类的属性耍小聪明啦

类的属性耍小聪明啦

作者: 愿你有闯荡风雪的骁勇 | 来源:发表于2018-10-31 17:57 被阅读0次

    class AAA(object):

        hobby='play computer'

        def __init__(self,name,age,weight):#类的构造方法

            self.name=name#参数代入

            self._age=age#也是参数代入,不过是半私有化,就是属性名变了啊

            self.__weight=weight#全私有化?耍小聪明而已啊,改改名字而已

        def get_weight(self):#定义第二个方法

            return self.__weight#用于获取体重

    if __name__=='__main__':

        programmer=AAA('Alert',25,80)#实例化类,形成对象。

        print (dir(programmer))#对象所有的继承的类的所有属性和方法

        print(programmer.name)

        print(programmer._age)

        print(programmer._AAA__weight)

        print(programmer.__dict__)

        print(programmer.get_weight())

        print(programmer._AAA__weight)#这个地方是对象的某一个内置的方法。

    -----------------------------------------------------------------------------------------

    C:\Users\sunqicheng\PycharmProjects\object\venv\Scripts\python.exe C:/Users/sunqicheng/PycharmProjects/object/Programmer.py

    ['_AAA__weight', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_age', 'get_weight', 'hobby', 'name']

    Alert

    25

    80

    {'name': 'Alert', '_age': 25, '_AAA__weight': 80}

    80

    80

    Process finished with exit code 0

    --------------------------------------------------

    就是构造方法的私有属性,一种呢,就是self._age=age这种实例化对象之后可以直接调用.x._age()

    另外一种就是全私有化self.__weight=weight

    这种要x._AAA__weight()这样来方法,一定程度上保护了构造方法里的属性。

    相关文章

      网友评论

          本文标题:类的属性耍小聪明啦

          本文链接:https://www.haomeiwen.com/subject/vxtztqtx.html