동일한 클래스의 키워드 인수에 대한 인스턴스 변수를 기본값으로 할당하는 방법 파이썬
-
20-12-2019 - |
문제
Python 3.3 +에서는 메소드가있는 클래스가 주어지면 클래스는 간단한 object () 객체 인 인스턴스 변수가 있습니다 (셀프 .False).그 인스턴스 변수는 키워드 인수의 기본값으로 사용합니까?
class Test:
def __init__(self):
self.FALSE=object();
def Tester(self, key=self.FALSE):
pass;
.
키워드 인수의 범위가 자체가 포함되어 있지 않아야합니다 (일반적으로 테스트 클래스가 포함되지 않음) 때문에 작동하지 않습니다.그러나 글로벌 변수와 적어도 일부 객체가 포함됩니다.
이 작업을 수행하는 방법이 있습니까?나는 지금 당장의 필요가 없지만, 내가 할 수 있다면, 어떻게 든 할 수 있다면 정말 좋을 것입니다.키워드 인수 기본값으로 아무 것도 통과 할 수 있다고 생각할 것입니다.확실히 방법이 있어야합니다.
해결책
처음에는 key
와 함수의 값을 입력하고 함수의 기본값이 None
인 경우 원하는대로 기본값을 설정할 수 있습니다.
def Tester(self, key=None):
if key is None:
key = self.FALSE
.
또한 C / C ++ / Java에서 필요한 것처럼 파이썬에서 세미콜론이 필요하지 않습니다.
다른 팁
인스턴스 속성이 인스턴스가 작성 될 때까지 존재하지 않지만 인스턴스가 존재하기 전에 클래스가 생성 될 때 메소드가 정의됩니다.즉, "귀하의 질문에있는 것처럼"클래스의 인스턴스 변수가있는 "잘못되었습니다.수업은 그런 일이 없습니다.인스턴스 만 변수가 있으며, 만약 해당 가변적 인 경우에만.
Fourtheye가 메소드 본문 내부의 기본값을 할당하는 것을 제안하고 처리 할 때 수행해야합니다.
제휴하지 않습니다 StackOverflow