Python 대상 내 장 된 함수 지식 총화

4878 단어 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
이로써 대상 을 대상 으로 하 는 내 장 된 함수 에 대해 정리 가 끝 났 습 니 다.만약 부당 한 점 이 있 으 면 지적 을 환영 합 니 다!
파 이 썬 이 대상 을 대상 으로 하 는 내 장 된 함수 에 관 한 지식 을 정리 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 내 장 된 함수 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기