[료 설 봉 선생님 python 튜 토리 얼] - OOP
개술
방법 은 인 스 턴 스 와 연 결 된 함수 입 니 다. 일반 함수 와 달리 방법 은 인 스 턴 스 의 데 이 터 를 직접 방문 할 수 있 습 니 다.
실례 적 인 호출 방법 을 통 해 우 리 는 대상 내부 의 데 이 터 를 직접 조 작 했 지만 방법 내부 의 실현 세부 사항 을 알 필요 가 없다.
정적 언어 와 달리 Python 은 인 스 턴 스 변수 에 모든 데 이 터 를 연결 할 수 있 습 니 다. 즉, 두 인 스 턴 스 변수 에 대해 모두 같은 종류의 인 스 턴 스 이지 만 가지 고 있 는 변수 이름 은 다 를 수 있 습 니 다.
>>> bart = Student('Bart Simpson', 59)
>>> lisa = Student('Lisa Simpson', 87)
>>> bart.age = 8
>>> bart.age
8
>>> lisa.age
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'Student' object has no attribute 'age'
__
를 붙 일 수 있 습 니 다. Python 에서 인 스 턴 스 의 변수 이름 이 __
로 시작 하면 하나의 개인 변수 (private) 가 되 고 내부 만 방문 할 수 있 으 며 외부 에 접근 할 수 없 기 때문에 우 리 는 Student 류 를 바 꿉 니 다.class Student(object):
def __init__(self, name, score):
self.__name = name
self.__score = score
def print_score(self):
print('%s: %s' % (self.__name, self.__score))
#
class Student(object):
...
def get_name(self):
return self.__name
def get_score(self):
return self.__score
def set_score(self, score):
self.__score = score
유형 은
-
- class , 。 Python , str、list、dict :【 】
- : hi , : 。 ,
-
vs
( Java) , Animal
유형 이나 그 하위 유형 이 어야 하 며, 그렇지 않 으 면 호출 할 수 없다 Animal
방법.Python 과 같은 동적 언어 에 있어 서 꼭 들 어 올 필요 가 없습니다 run()
유형.우 리 는 들 어 오 는 대상 에 게 하나의 Animal
방법 만 있 으 면 된다.
- 소결 계승 은 아버지 류 의 모든 기능 을 직접 가 져 올 수 있다. 그러면 다시 시작 하지 않 아 도 된다. 자 류 는 자신 만 의 독특한 방법 만 새로 추가 하고 아버지 류 가 적합 하지 않 은 방법 을 덮어 쓸 수도 있다.동적 언어의 오리 유형 특징 은 정적 언어 처럼 계승 이 필요 하지 않다 는 것 을 결정 한다.
대상 정보 가 져 오기- 우 리 는 대상 의 유형 을 판단 하고 사용
run()
함수: - isinstance () 사용
- 한 대상 의 모든 속성 과 방법 을 얻 으 려 면
type()
함 수 를 사용 하여 문자열 을 포함 하 는 list 를 되 돌려 줍 니 다. 예 를 들 어 str 대상 의 모든 속성 과 방법 을 얻 을 수 있 습 니 다. - 속성 과 방법 만 열거 하 는 것 으로 는 부족 하 다. 협조
dir()
, getattr()
와 setattr()
, 우 리 는 한 대상 의 상 태 를 직접 조작 할 수 있다. - 내 장 된 일련의 함 수 를 통 해 우 리 는 임의의 Python 대상 을 분석 하여 내부 의 데 이 터 를 얻 을 수 있다.주의해 야 할 것 은 대상 정 보 를 모 를 때 만 우 리 는 대상 정 보 를 얻 을 수 있다 는 것 이다.
- 인 스 턴 스 속성 과 클래스 속성
>>> class Student(object):
... name = 'Student'
...
>>> s = Student() # s
>>> print(s.name) # name , name , class name
Student
>>> print(Student.name) # name
Student
>>> s.name = 'Michael' # name
>>> print(s.name) # , , name
Michael
>>> print(Student.name) # , Student.name
Student
>>> del s.name # name
>>> print(s.name) # s.name, name , name
Student
#
class Student(object):
count = 0
def __init__(self, name):
self.name = name
Student.count += 1
hasattr()
:https://www.cnblogs.com/ChaoyuanJam/p/9741952.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.