python-定义类的属性

#conding: utf-8
#定义类的属性
class Programer(object):                     #定义了一个Programer类
    hobby = "Play Computer"                 #直接在类里面直接定义一个属性hobby

    def __init__(self, name, age, weight):   #在构造函数里面定义了三个属性
        self.name = name           #属性可以公开访问
        self._age = age            #私有属性,要访问依然可以访问
        self.__weight = weight     #要让方法或属性成为私有(不能从外部访问),只需让其名称以两个下划线打头即可

    def get_weight(self):          #在类里面定义了一个方法,来获取weight
        return self.__weight

if __name__ == '__main__':
    programer = Programer('jodie', 25, 85)     #将Programer这个对象实例化
    print(dir(programer))                      #将programer的所以属性打印一下
    print(programer.__dict__)                  #打印从构造函数里获得的属性
    print(programer.get_weight())              #对象.方法
    '''
    在类定义中,对所有以两个下划线打头的名称都进行转换,即在开头加上一个下划线和类名
    这样就能从类外部访问私有方法,一般不这样做
    '''
    print(programer._Programer__weight)
           

运行后的结果打印:
D:\Jodie2019\venv\Scripts\python.exe D:/Jodie2019/study/study4定义类的属性.py
['_Programer__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']

{'name': 'jodie', '_age': 25, '_Programer__weight': 85}
85
85

Process finished with exit code 0

 

你可能感兴趣的:(python-定义类的属性)