class?Programer(object):
????hobby?=?'Play?Computer'
????def?__init__(self,?name,?age,?weight):
????????self.name?=?name
????????self._age?=?age
????????self.__weight?=?weight
????@classmethod
????def?get_hobby(cls):
????????return?cls.hobby
????@property
????def?get_weight(self):
????????return?self.__weight
????def?self_introduction(self):
????????print("my?name?is?%s?\n?i?am?%s?years?old"?%?(self.name,?self._age))
class?BcakendProgramer(Programer):
????def?__init__(self,?name,?age,?weight,?language):??#?創(chuàng)建構(gòu)造函數(shù)
????????super(BcakendProgramer,?self).__init__(name,?age,?weight)??#?調(diào)用父類構(gòu)造函數(shù)
????????self.language?=?language??#?再添加一個屬性,進(jìn)行賦值
if?__name__?==?'__main__':
????programer?=?BcakendProgramer('Albert',?21,?50,?'Chinese')
????print('dir()-----將屬性打印:\n',?dir(programer))
????print('programer.__dict__??-----?是將這個對象在構(gòu)造函數(shù)里面賦予值的屬性打印出來\n',?programer.__dict__)
????print('type(programer)是個啥東西:判斷paogranmer的種類\n',?type(programer))
????print('isinstance(programer,Programer)是個啥東西:-----判斷后者是不是前者的父類\n',?isinstance(programer,?Programer))
????
????#輸出結(jié)果
dir()-----將屬性打印:?['_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_hobby',?'get_weight',?'hobby',?'language',?'name',?'self_introduction']
programer.__dict__??-----?是將這個對象在構(gòu)造函數(shù)里面賦予值的屬性打印出來?{'name':?'Albert',?'_age':?21,?'_Programer__weight':?50,?'language':?'Chinese'}
type(programer)是個啥東西:判斷paogranmer的種類?<class?'__main__.BcakendProgramer'>
isinstance(programer,Programer)是個啥東西:-----判斷后者是不是前者的父類?True
2020-08-14