python3(二十から五)getClassInfoを

"" "   " "" 
__Author__ = ' shaozhiqi ' 

  どのように我々は、そのオブジェクトがどのような種類、使用タイプ()を知っています
印刷(タイプ(123))  <クラスのint型'> 
印刷(タイプ(' ABC '))  <クラス'STR'> 
印刷(タイプ(なし))  <クラスのNoneType '> 
印刷(タイプ(ABS))  <クラスのbuiltin_function_or_method'>
印刷(タイプ(123)==タイプ(456))  トゥルー
プリント(タイプ(123)== int型)   トゥルー
プリント(タイプ(' ABC ')== STR)  
印刷(タイプ(' ABC ')==タイプ(123))  
#は、オブジェクトが関数であるか否かを判断する
インポートの種類


DEF のFn():
     渡し


印刷(タイプ(FN)を== types.FunctionType )   
印刷 == types.BuiltinFunctionType)(タイプ(ABSの)   

でisinstanceには、()の目的は、型自体であるかどうか、または親継承チェーンの種類に決定することである
。#セクション二十から四に記載されているように
#の印刷(でisinstance(動物)犬、)真#1 
#を入力することができる()は、実質的でisinstance()のタイプにより決定することができる
プリント(でisinstance(A 、STR))  
印刷(でisinstance(123、INT))  
印刷(でisinstance(B ' A '、バイト))  でisinstanceは、変数が特定のタイプであるか否かを判断することができる
プリント(でisinstance( [1、2 ,. 3 ]、(リスト、タプル))) 

DIR()------------------------------- ------------------------- オブジェクトを取得するすべてのプロパティとメソッドは、リストを含む文字列を返すDIR()関数を使用することができます
印刷(DIR(' ABC ' ))
[ '__add__'、 '__class__'、 '__contains__'、 '__delattr__'、 '__ DIR__'、 '__doc__'、 '__eq__'、 '__format__'、 '__ge__'、 '__getattribute__'、 '__getitem__'、 '__getnewargs__'、 ' __gt__」、 '__hash__'、 '__init__'、 '__init_subclass__'、 '__iter__'、 '__le__'、 '__len__'、 '__lt__'、 '__mod__'、 '__mul__'、 '__ne__'、 '__new__'、 '__reduce__' '__reduce_ex__'、 '__repr__'、 '__rmod__'、 '__rmul__'、 '__setattr__'、 '__sizeof__'、 '__str__'、 '__subclasshook__'、 '活用'、 '引数casefold'、 '中央'、 '数'、 'エンコード ' 'endswith'、 'expandtabs'、 '見つけます'、'フォーマット」、 'format_map'、 'インデックス'、 'isalnum'、 'はisalpha'、 'isasciiは'、 'isdecimal'、 'isdigit'、 'isIdentifierと'、 'islowerは'、 'ISNUMERIC'、 'isprintable'、 'isspace' 'istitle'、 'isupper'、 '参加'、 'として、ljust'、 '下'、 'lstrip'、 'maketrans'、 'パーティション'、 '置き換え'、 'RFIND'、 'RINDEX'、 'RJUST'、 ' rpartition」、 'rsplit'、 'rstrip'、 '分割'、 '分割線'、 'STARTSWITH'、 'ストリップ'、 'swapcase'、 'タイトル'、 '翻訳'、 '上位'、 'zfill']isIdentifierと」、 'islowerは'、 'ISNUMERIC'、 'isprintable'、 'isspace'、 'istitle'、 'isupper'、 ''、 'として、ljust'、 '下'、 'lstrip'、 'maketrans'、 'パーティション' を参加、 '、 'RFIND'、 'RINDEX'、 'RJUST'、 'rpartition'、 'rsplit'、 'rstrip'、 '分割'、 '分割線'、 'STARTSWITH'、 'ストリップ'、 'swapcase'、 '交換してください'タイトル」、 ''、 '翻訳上部の'、 'zfill']isIdentifierと」、 'islowerは'、 'ISNUMERIC'、 'isprintable'、 'isspace'、 'istitle'、 'isupper'、 ''、 'として、ljust'、 '下'、 'lstrip'、 'maketrans'、 'パーティション' を参加、 '、 'RFIND'、 'RINDEX'、 'RJUST'、 'rpartition'、 'rsplit'、 'rstrip'、 '分割'、 '分割線'、 'STARTSWITH'、 'ストリップ'、 'swapcase'、 '交換してください'タイトル」、 ''、 '翻訳上部の'、 'zfill']'rpartition'、 'rsplit'、 'rstrip'、 '分割'、 '分割線'、 'STARTSWITH'、 'ストリップ'、 'swapcase'、 'タイトル'、 '翻訳'、 '上位'、 'zfill']'rpartition'、 'rsplit'、 'rstrip'、 '分割'、 '分割線'、 'STARTSWITH'、 'ストリップ'、 'swapcase'、 'タイトル'、 '翻訳'、 '上位'、 'zfill']Pythonで同様__xxx__プロパティおよびメソッドは、そのような方法として、すべての特別な目的は、__len__長さを返しています。あなたがlenを呼び出す場合はPythonでは、()関数は、自動的にオブジェクトの__len __()メソッドを呼び出すために行ってきましたLEN()関数で、内部で、実際には、オブジェクトの長さを取得しようとすると
印刷を(LEN(ABC ))   3 
印刷' ABC '__len__())  3 


#はまた、私たち自身の書き込みクラス__len__の中で定義することができ
たクラスmyDog(オブジェクト):

    DEF  __init__ (セルフ):
        self.nameDog = ' ' 

    DEFの __len__ (セルフ):
         返す 100 DEF RUN(セルフ):
        

    プリント' 実行....... ' 

 = myDog()
 プリント(LEN(犬))  100 __len__削除方法指定された
印刷' ABC ' .lower())  ABCの

印刷(はhasattr(犬、' nameDog '))  真そこはnameDogプロパティがありません
印刷(はhasattr(犬、' 色に'))  偽何色属性

SETATTR(犬、' '' 黒と白'#をプロパティ「色」の設定
を印刷(はhasattr(犬、))  
印刷(GETATTR(犬、))  中で得られたモノクロの属性値
を印刷(dog.color)  の中で
印刷(GETATTR(犬、' 年齢'' 404 '))  404が存在しないプロパティは、エラーを報告し、デフォルト値処理404に設定されます取得

取得したオブジェクトのメソッドの
印刷(はhasattr(犬、' RUN '))   
のFn =のgetattr(犬、" RUN" 
のFn()  ランニング....... 


----------インスタンスの属性---------------------- -------------------------- 
クラス学生(オブジェクト): = ' 学生' 

    DEF  __init__ (セルフ、名):
        self.name = 名前


S =学生(' ボブ' 
s.score = 90
 印刷(s.name、' '、s.score)  ボブ、90 印刷(Student.name)  学生
#は、プロパティ削除デルを

s.name
 印刷(s.name、' '、s.score)  学生、90 
Student.name = ' STUDENT1 ' 印刷(s.name、' '、s.score)   #1 STUDENT1、90 インスタンス属性の場合そして、クラスが同じ名前の属性を実際の開発は避けて、クラスのインスタンスの属性は、プロパティが上書きされます。これを行うには、実際のビジネスニーズがある場合を除き

 

おすすめ

転載: www.cnblogs.com/shaozhiqi/p/11550453.html