?????? ????
?? ??? ?? ??? ???? ?????? ??????. ??? ??? ??? ?????? ???? ????.
???? ??? ? ???? ???? ???? ??? ???? ????. ?????? ?????? ?????? ???? ???? ? ?????. ?? ???? ? ?? ??? ?????? ??? ????? ????.
?? type() ?? ??? ?? type() ??? ?? ???? ??? ? ??? ?? ? ? ????.
MyClass = type('MyClass', (), {})
?? type() ??? ????????. type()? Python? ?? ???? ???? ?? ???? ???? ????????.
?? ? type() ??? Type? ??? type?? ??? ? ?????
??? ??? ??? ??? ???? ? ???? ???? str? ?? ??? ???? ? ???? ???? int?? ???? ?? ????. type? ??? ??? ???? ??????. __class__ ??? ???? ?? ??? ? ????. Python? ?? ?? ??? ??????. ???? ?? ?? ???? ?????. ???? ??, ???, ?? ? ???? ?????. ???? ?? ???? ?? ????? ?????.
# 整形 age = 23 print(age.__class__) # 字符串 name = '兩點水' print(name.__class__) # 函數(shù) def fu(): pass print(fu.__class__) # 實例 class eat(object): pass mEat = eat() print(mEat.__class__)
?? ??? ??? ????.
<class 'int'> <class 'str'> <class 'function'> <class '__main__.eat'>
?? ?? ?, ? ?? ??? ???? ?? ???? ?? ? ? ???? __class__? __class__? ???? ??? ????. ?, ??? ???? ???? ???? ??????
? ??? ???? ?? ??? ?? ??? ? ????.
print(age.__class__.__class__) print(name.__class__.__class__) print(fu.__class__.__class__) print(mEat.__class__.__class__)
?? ??? ??? ????.
<class 'type'> <class 'type'> <class 'type'> <class 'type'>
?? ?? ???? ?? ???? ???? ? ?? ??? ?? ??? ??? ????? ????. ????, ?? fu? ?? ???? mEat?? __class__? __class__? ?? ??? ?????. ?? ??? ??? ??? ????? ?? ?? ????. ??? ???? ?? ??? ??? ???????.
??? ????? ?????? ???? ??????. ?, ?????? ??? ??? ???? ????. ?? ?????? ??? ??? ????? ?? ??? ? ????. ??? type? ??? ????????. ?, Python ??? ????????.