문제

에서는 파이썬은 어떤 방법 있는 클래스를 만들려면 다음 두번째 버전이 해당 클래스의 동일한 dat,하지만,변경할 수 있습니다 다음으로 되돌로 데이터에서는 원래 등?

그래서 내가 만들기 클래스와 숫자 1 5 으로 데이터에 그것은,그 두 번째 클래스와 동일한 이름이션(또는 매우 비슷).혼란을 주위와 숫자에서 두 번째 클래스를 다음으로 하나의 함수를 다시 설정해 그들이 동일에 첫 번째 클래스입니다.

유일한 대안 내가 찾는 것은 하나를 만드 aggravatingly 긴급으로 너무 많은 별도의 데이터에 조각은 그것을 쉽게 사용할 수 있습니다.

도움이 되었습니까?

해결책

클래스입니다 템플릿을 만들 수 있습 청사진할 수 있습니다 여러 클래스의 인스턴스를 각기 다른 번호,다음과 같다.

class dog(object):
    def __init__(self, height, width, lenght):
        self.height = height
        self.width = width
        self.length = length

    def revert(self):
        self.height = 1
        self.width = 2
        self.length = 3

dog1 = dog(5, 6, 7)
dog2 = dog(2, 3, 4)

dog1.revert()

다른 팁

여기에는 다른 응답의 종류는 다음과 같 pobk 의그것은 사용 인스턴스의 dict 하는 작업을 수행합 절약/재설정 변수,그러나 당신이 필요 하지 않의 이름을 지정하에서 그들의 코드입니다.당신을 호출 할 수 있습 저장()시간에 상태를 저장하의 인스턴스와 reset()을 다시 설정하는 상태입니다.

class MyReset:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.save()

    def save(self):
        self.saved = self.__dict__.copy()

    def reset(self):
        self.__dict__ = self.saved.copy()

a = MyReset(20, 30)
a.x = 50
print a.x
a.reset()
print a.x

당신은 왜 이런 일을 하고 싶?되지 않을 수도 있 최/유일한 방법입니다.

클래스가 없는 값입니다.체 않습니다.당신이 원하는 무엇인가 기본적으로 클래스는 인스턴스를 재설정할 수 있습니다(객체)를 설정의 기본값?

는 방법에 대을 제공하고 재설정 방법을 다시 설정하는 특성의 개체 어떤 기본?

나는 당신을 단순화해야 질문 또는 우리에게 당신이 정말 하고 싶.그것도 아니에요 모두 취소합니다.

내가 생각하는 당신은 혼란스러우실 겁니다.당신이 다시의 의미를 확인"등"및"인스턴스".

나는 생각하려는 당신이 선언하는 첫 번째 인스턴스의 특정 클래스를 선언하의 인스턴스는 다른 클래스를 사용하여 데이터에서 첫 번째 중 하나,그리고 다음 방법을 찾을 변환하는 데이터에서 두 번째 인스턴스에서도 사용할 수 있는 첫 번째 인스턴스...

내가 사용하는 것이 좋은 운영자 과부하를 할당하는 데이터입니다.

class ABC(self):
   numbers = [0,1,2,3]

class DEF(ABC):
   def __init__(self):
      self.new_numbers = super(ABC,self).numbers

   def setnums(self, numbers):
      self.new_numbers = numbers

   def getnums(self):
     return self.new_numbers

   def reset(self):
     __init__()

그냥 참고하시기 바랍니다,여기에는 다른 구현...아 위반에 대해 15 만 pythonic 규칙이지만,저는 그것을 게시당 정보/관찰

class Resettable(object):
    base_dict = {}
    def reset(self):
            self.__dict__ = self.__class__.base_dict

    def __init__(self):
            self.__dict__ = self.__class__.base_dict.copy()

class SomeClass(Resettable):
    base_dict = {
            'number_one': 1,
            'number_two': 2,
            'number_three': 3,
            'number_four': 4,
            'number_five': 5,
    }
    def __init__(self):
            Resettable.__init__(self)


p = SomeClass()
p.number_one = 100
print p.number_one
p.reset()
print p.number_one
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top