Python 바 인 딩 방법 과 비 바 인 딩 방법 에 대한 상세 한 설명

2539 단어 Python귀속
본 논문 의 사례 는 여러분 에 게 Python 바 인 딩 방법 과 비 바 인 딩 방법 을 공유 하 였 으 며,구체 적 인 내용 은 다음 과 같 습 니 다.
정의:
바 인 딩 방법(바 인 딩 을 누 군가 에 게 호출 하면 자동 으로 그 자 체 를 첫 번 째 매개 변수 로 입력 합 니 다):
1.클래스 에 연결 하 는 방법:classmethod 장식 기로 장식 하 는 방법.
                클래스 맞 춤 형 제작
                클래스.boudmethod(),자동 으로 클래스 를 첫 번 째 매개 변수 로 입력 합 니 다.
              (사실 대상 도 호출 할 수 있 지만 클래스 를 첫 번 째 매개 변수 로 입력 합 니 다)
2.대상 에 귀속 하 는 방법:어떤 장식 기 에 도 장 식 된 방법 이 없습니다.
               대상 맞 춤 형 제작
               대상.boudmethod(),자동 으로 대상 을 첫 번 째 매개 변수 로 전송 합 니 다.
             (클래스 에 속 하 는 함수 입 니 다.클래스 는 호출 할 수 있 지만 함수 의 규칙 에 따라 자동 전송 값 이 없습니다)
비 귀속 방법:staticmethod 장식 기로 장식 하 는 방법
         클래스 나 대상 과 연결 되 지 않 고 클래스 와 대상 을 호출 할 수 있 지만 자동 전송 값 은 없습니다.그냥 도구 일 뿐 이 야.
메모:대상 에 연결 하 는 방법 구역 과 분리 되 어 클래스 에서 직접 정 의 된 함수 입 니 다.어떠한 장식 기 에 의 해 장식 되 지 않 았 습 니 다.모두 대상 에 연결 하 는 방법 입 니 다.일반 함수 가 아 닙 니 다.대상 이 이 방법 을 호출 하면 자동 으로 값 을 전달 합 니 다.staticmethod 장식 방법 은 누가 호출 하 든 자동 으로 값 을 전달 하지 않 습 니 다.
2.귀속 방법
대상 에 게 귀속 하 는 방법(약)
클래스 에 연결 하 는 방법(classmethod)
classmehtod 는 클래스 에 연결 되 어 있 습 니 다.클래스 는 사용 할 때 클래스 자 체 를 매개 변수 로 클래스 방법 에 전달 하 는 첫 번 째 매개 변수(대상 이 호출 하 더 라 도 클래스 를 첫 번 째 매개 변수 로 전송 합 니 다)입 니 다.python 은 함수 classmethod 를 내장 하여 클래스 의 함 수 를 클래스 방법 으로 정의 합 니 다.

import settings
class MySQL:
 def __init__(self,host,port):
  self.host=host
  self.port=port

 @classmethod
 def from_conf(cls):
  print(cls)
  return cls(settings.HOST,settings.PORT)

print(MySQL.from_conf) #<bound method MySQL.from_conf of <class '__main__.MySQL'>>
conn=MySQL.from_conf()

conn.from_conf() #       ,               

3.비 귀속 방법
클래스 내부 에서 staticmethod 로 장식 한 함수 즉 비 귀속 방법 은 일반 함수 입 니 다
statimethod 는 클래스 나 대상 과 연결 되 지 않 고 누구나 호출 할 수 있 으 며 자동 전송 효과 가 없습니다.

import hashlib
import time
class MySQL:
 def __init__(self,host,port):
  self.id=self.create_id()
  self.host=host
  self.port=port
 @staticmethod
 def create_id(): #        
  m=hashlib.md5(str(time.time()).encode('utf-8'))
  return m.hexdigest()


print(MySQL.create_id) #<function MySQL.create_id at 0x0000000001E6B9D8> #         
conn=MySQL('127.0.0.1',3306)
print(conn.create_id) #<function MySQL.create_id at 0x00000000026FB9D8> #         
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기