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

답변

세 가지 방법 :

  • 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):]

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다