Python 대상 내 장 된 함수 지식 총화
1. classmethod、staticmethod、property 。
상기 세 개의 내 장 된 함 수 는 문장(Python 진급-대상 을 대상 으로 하 는 구성원)의 방법 과 속성 에 상세 하 게 소개 되 어 사용 되 었 으 며,다시 탐색 할 수 있 습 니 다.구체 적 인 주 소 는:https://www.jb51.net/article/215871.htm
2.callable,뒤에 괄호 를 붙 여 실행 할 수 있 습 니까?
함수.
def func():
pass
print( callable(func) ) # True
종류
class Foo(object):
pass
print( callable(Foo) ) # True
클래스 중__call__
방법 이 있 는 대상
class Foo(object):
pass
obj = Foo()
print( callable(obj) ) # False
class Foo(object):
def __call__(self, *args, **kwargs):
pass
obj = Foo()
print( callable(obj) ) # True
그래서 당신 이 나중에 아래 의 상황 을 볼 때 먼저 handler 가 함수,클래스,콜 방법 을 가 진 대상 이라는 세 가지 일 수 있다 는 것 을 생각해 야 합 니 다.도대체 구체 적 으로 무엇 인지 코드 의 호출 관계 에 따라 분석 할 수 있 습 니 다.
def do_something(handler):
handler()
3.슈퍼,mro 상속 관계 에 따라 위로 멤버 찾기.
class Top(object):
def message(self, num):
print("Top.message", num)
class Base(Top):
pass
class Foo(Base):
def message(self, num):
print("Foo.message", num)
super().message(num + 100)
obj = Foo()
obj.message(1)
>>> Foo.message 1
>>> Top.message 101
class Base(object):
def message(self, num):
print("Base.message", num)
super().message(1000)
class Bar(object):
def message(self, num):
print("Bar.message", num)
class Foo(Base, Bar):
pass
obj = Foo()
obj.message(1)
>>> Base.message 1
>>> Bar.message 1000
응용 장면만약 에 한 가지 유형 이 있다 고 가정 하면 그 는 원래 어떤 기능 을 실 현 했 지만 우 리 는 그의 기초 위 에서 기능 을 좀 더 확장 하고 다시 쓰 고 싶 습 니 다.귀 찮 습 니 다.이 때 는 슈퍼 를 사용 할 수 있 습 니 다.
info = dict() # {}
info['name'] = " "
info["age"] = 18
value = info.get("age")
print(value)
class MyDict(dict):
def get(self, k):
print(" ")
return super().get(k)
info = MyDict()
info['name'] = " " # __setitem__
info["age"] = 18 # __setitem__
print(info)
value = info.get("age")
print(value)
4.type,대상 의 종 류 를 가 져 옵 니 다.
v1 = " "
result = type(v1)
print(result) # <class 'str'>
v2 = " "
print( type(v2) == str ) # True
v3 = [11, 22, 33] # list(...)
print( type(v3) == list ) # True
class Foo(object):
pass
v4 = Foo()
print( type(v4) == Foo ) # True
5.isinstance,대상 이 특정한 유형 이나 그 하위 클래스 의 인 스 턴 스 인지 판단 합 니 다.
class Top(object):
pass
class Base(Top):
pass
class Foo(Base):
pass
v1 = Foo()
print( isinstance(v1, Foo) ) # True, v1 Foo
print( isinstance(v1, Base) ) # True, v1 Base 。
print( isinstance(v1, Top) ) # True, v1 Top 。
class Animal(object):
def run(self):
pass
class Dog(Animal):
pass
class Cat(Animal):
pass
data_list = [
"alex",
Dog(),
Cat(),
"root"
]
for item in data_list:
if type(item) == Cat:
item.run()
elif type(item) == Dog:
item.run()
else:
pass
for item in data_list:
if isinstance(item, Animal):
item.run()
else:
pass
6.issubclass,클래스 가 어떤 종류의 자손 류 인지 판단 합 니 다.
class Top(object):
pass
class Base(Top):
pass
class Foo(Base):
pass
print(issubclass(Foo, Base)) # True
print(issubclass(Foo, Top)) # True
이로써 대상 을 대상 으로 하 는 내 장 된 함수 에 대해 정리 가 끝 났 습 니 다.만약 부당 한 점 이 있 으 면 지적 을 환영 합 니 다!파 이 썬 이 대상 을 대상 으로 하 는 내 장 된 함수 에 관 한 지식 을 정리 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 내 장 된 함수 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.