day15
class Number: def init(self): self.value = 0 self.type = int self.id = None
@staticmethod
def max():
return 100
@staticmethod
def min():
return -100
num = Number() num.value = 1000 print(Number.max())
class Math: pi = 3.1415926
@classmethod
def circle_area(cls,radius):
return cls.pi * radius ** 2
@staticmethod
def sum(num1, num2):
return num1 + num2
print(Math.circle_area(3)) print(Math.circle_area(4))
class Rect: def init(self, length, width): self.length = length self.width = width
def area(self):
return self.length * self.width
class Person:num = 61 # 클래스 메서드 @classmethod def destroy (cls) 선언: # cls 는 현재 클래스를 가리킵니다.이 방법의 클래스를 호출하면 할 수 있는 일,cls는 모두 print('cls:',cls,cls.num)p2 =cls()print(p2)print('인간파괴환경')
#
@staticmethod
def func1():
print(Person.num)
p3 = Person()
print(p3)
print(' ')
2. 사유화 클래스의 내용은 기본적으로 모두 공개된다(클래스의 밖에서 사용할 수 있다)
@1. 사유화 - 클래스의 내용을 클래스의 바깥쪽에 숨기는 방법명이나 속성명 앞에 두 개의 밑줄을 넣고(두 개의 밑줄로 끝낼 수 없음) 사유한 방법과 속성은 클래스 내부에서만 사용할 수 있고 클래스 외부에서는 사용할 수 없습니다.
@2. 사유의 원리python에 진정한 사유화(접근 권한에서 내용의 접근을 제한하지 않음)가 없는 사유의 원리는 사유의 속성명이나 방법명 앞에 접두사를 붙이는 것이다'클래스 이름은 외부에서 두 개의 밑줄이 그어진 이름으로 속성과 방법을 사용하는 것을 막는다
class Person: #개인 필드num = 61 def init(self, name, age): self.name = name # 개인 객체 속성 self.age = age
def show_info(self):
print(self.__age)
self.__func1()
#
def __func1(self):
print(' ')
p1 = Person('소명', 23) print(p1.name) p1.show_info()
print(p1.__age)
print(Person.__num)
print(p1.dict) print(p1. Person age) 셋째, Getter와setter 1.대상 속성의 Getter와setter를 언제 추가해야 합니까?속성이 속성의 값을 얻기 전에 다른 일을 하면 이 속성에 Getter를 추가할 수 있습니다.만약 대상을 통과하기를 원한다면.속성이 속성에 값을 부여하기 전에 다른 일을 하면 이 속성에 setter를 추가할 수 있습니다
2. setter와 Getter Getter를 추가하는 방법: a. 속성 이름 앞에b. 속성에 대응하는 Getter@property def 속성 이름 제거(self): 함수체 -->는 속성의 값을 처리한 후 상응하는 결과를 되돌려줍니다(반드시 되돌려주는 값이 있어야 합니다)
c. 속성의 값을 사용할 때 밑줄이 있는 속성명을 사용하지 않고 밑줄이 없는 속성을 통해 사용한다
참고: 객체.밑줄이 없는 속성 -->getter에 대응하는 함수 setter를 호출합니다:setter를 추가하려면 먼저 getter a.setter @getter 이름을 추가해야 합니다.setter def 속성명 제거(self, 매개 변수): 다른 일을 하기self.속성 이름 = 처리된 값
값을 부여할 때age의 값은 0-150 사이만 가능하고 범위를 초과하면 오류가 발생합니다.age의 값을 가져올 때, 나이를 되돌려주고, 이 나이에 대응하는 단계class Person: def init (self):self를 되돌려줍니다.name self.age = 18
print(p1.age)-->(18,성년)value,jieduan = p1.age value -> 18, jieduan -> 성인
class Number: def init(self): self._value = 0 # 0-6 self. 저장week = 3 self.type = int self.id = None # _value getter setter
@property
def value(self):
return self._value
@value.setter
def value(self, x):
if not -100 <= x <= 100:
raise ValueError
self._value = x
# _week getter
@property
def week(self):
if self._week == 0:
return ' '
elif self._week == 1:
return ' '
elif self._week == 2:
return ' '
elif self._week == 3:
return ' '
elif self._week == 4:
return ' '
elif self._week == 5:
return ' '
elif self._week == 6:
return ' '
isinstance(값, 클래스) -->지정한 값이 지정한 형식인지 판단(반환값은 bool)@week.setter
def week(self, value):
#
if not isinstance(value, int):
raise ValueError
if not 0 <= value <= 6:
raise ValueError
self._week = value
number = Number() number.value = 99 print(number.week)
number.week은 실질적으로number를 통해 Getter에 대응하는 week 방법을 호출하는 것이다
number.week = 1
number.week = 값의 실질은number를 통해setter에 대응하는 week 방법을 호출하는 것이다
number.value = 100 print(number.value)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
print(p1.dict) print(p1. Person age) 셋째, Getter와setter 1.대상 속성의 Getter와setter를 언제 추가해야 합니까?속성이 속성의 값을 얻기 전에 다른 일을 하면 이 속성에 Getter를 추가할 수 있습니다.만약 대상을 통과하기를 원한다면.속성이 속성에 값을 부여하기 전에 다른 일을 하면 이 속성에 setter를 추가할 수 있습니다
2. setter와 Getter Getter를 추가하는 방법: a. 속성 이름 앞에b. 속성에 대응하는 Getter@property def 속성 이름 제거(self): 함수체 -->는 속성의 값을 처리한 후 상응하는 결과를 되돌려줍니다(반드시 되돌려주는 값이 있어야 합니다)
c. 속성의 값을 사용할 때 밑줄이 있는 속성명을 사용하지 않고 밑줄이 없는 속성을 통해 사용한다
참고: 객체.밑줄이 없는 속성 -->getter에 대응하는 함수 setter를 호출합니다:setter를 추가하려면 먼저 getter a.setter @getter 이름을 추가해야 합니다.setter def 속성명 제거(self, 매개 변수): 다른 일을 하기self.속성 이름 = 처리된 값
값을 부여할 때age의 값은 0-150 사이만 가능하고 범위를 초과하면 오류가 발생합니다.age의 값을 가져올 때, 나이를 되돌려주고, 이 나이에 대응하는 단계class Person: def init (self):self를 되돌려줍니다.name self.age = 18
print(p1.age)-->(18,성년)value,jieduan = p1.age value -> 18, jieduan -> 성인
class Number: def init(self): self._value = 0 # 0-6 self. 저장week = 3 self.type = int self.id = None
# _value getter setter
@property
def value(self):
return self._value
@value.setter
def value(self, x):
if not -100 <= x <= 100:
raise ValueError
self._value = x
# _week getter
@property
def week(self):
if self._week == 0:
return ' '
elif self._week == 1:
return ' '
elif self._week == 2:
return ' '
elif self._week == 3:
return ' '
elif self._week == 4:
return ' '
elif self._week == 5:
return ' '
elif self._week == 6:
return ' '
isinstance(값, 클래스) -->지정한 값이 지정한 형식인지 판단(반환값은 bool)
@week.setter
def week(self, value):
#
if not isinstance(value, int):
raise ValueError
if not 0 <= value <= 6:
raise ValueError
self._week = value
number = Number() number.value = 99 print(number.week)
number.week은 실질적으로number를 통해 Getter에 대응하는 week 방법을 호출하는 것이다
number.week = 1
number.week = 값의 실질은number를 통해setter에 대응하는 week 방법을 호출하는 것이다
number.value = 100 print(number.value)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
number.value = 100 print(number.value)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.