동일한 클래스의 키워드 인수에 대한 인스턴스 변수를 기본값으로 할당하는 방법 파이썬

StackOverflow https://stackoverflow.com//questions/23002587

문제

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가 메소드 본문 내부의 기본값을 할당하는 것을 제안하고 처리 할 때 수행해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top