Pythonでオブジェクトのクラス名を文字列として取得する方法


ベストアンサー

\_\_name\_\_クラスの属性。オブジェクトがある場合は、オブジェクトの\_\_class\_\_属性にアクセスしてクラスを取得できます。

>>> class SillyClassName:

... @classmethod

... def my\_name(cls\_):

... return cls\_.\_\_name\_\_

...

... def class\_name(self):

... return self.\_\_class\_\_.\_\_name\_\_

...

>>> SillyClassName.my\_name()

SillyClassName

>>>

>>> inst = SillyClassName()

>>> inst.class\_name()

SillyClassName

注意-継承を使用している状況でこれを使用してクラス名にアクセスする場合-self.\_\_class\_\_.\_\_name\_\_\_を使用すると、元のクラスの名前が返されます。コードを含むクラス。

>>> class SecondSillyClass(SillyClassName):

... pass

...

>>> inst = SecondSillyClass()

>>> SecondSillyClass.my\_name()

SecondSillyClass

>>> inst.class\_name()

SecondSillyClass

回答

3つの方法:

  • 「in」演算子を使用します:"orld" in "Hello World"
  • find()メソッド:"Hello World".find("or")-これはメイン文字列のサブ文字列のインデックスを返します-サブ文字列の場合は-1を返しますメイン文字列に含まれていません。
  • count()メソッドを使用します"Hello World".count("or")-これは部分文字列の頻度を返しますメイン文字列に含まれている-サブ文字列がメイン文字列に含まれていない場合は0を返します。

find()またはcount()を使用して、部分文字列が含まれているかどうかをテストしますメイン文字列での使用はお勧めできませんが、他の理由で提供されている情報を使用する予定がある場合は実行できます。

たとえば、これを実行します:

if substring in mainstring:

index = mainstring.find(substring)

after = maintstring[index+len(substring):]

実際には貧弱です練習-これを行う方が良いでしょう:

index = mainstring.find(substring)

if index != -1:

after = maintstring[index+len(substring):]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です