잘 작동하는 메서드가 있지만 클래스 메서드를 원하지만 @classmethod 데코레이터를 사용하면 거기에있는 매개 변수가 누락되었다는 오류가 발생합니다. 적어도 나는파이썬에서 클래스 메서드 사용
이이 작업 코드와 그 결과입니다) 그것을 이해 :
company=Company()
company_collection=company.get_collection('')
for scompany in company_collection:
print(scompany.get_attrs())
class Entity(Persistent):
def get_collection(self, conditional_str):
subset=[]
collection=[]
subset=self.get_subset_from_persistant(self.__class__.__name__, conditional_str)
for entity in subset:
collection.append(self.get_new_entity(entity))
return(collection)
class Company(Entity):
pass
MacBook-Pro-de-Hugo:Attractora hvillalobos$ virtual/bin/python3 control.py
{'id': '1', 'razon_social': 'Attractora S.A. de C.V.', 'rfc': ' xxxxxxxx'}
{'id': '2', 'razon_social': 'Otra empresa sa de cv', 'rfc': ' yyyyyyyy'}
{'id': '3', 'razon_social': 'Una mas sa de vc', 'rfc': ' zzzzz'}
이 그 결과에 실패한 하나
company_collection=Company.get_collection('')
for scompany in company_collection:
print(scompany.get_attrs())
class Entity(Persistent):
@classmethod
def get_collection(self, conditional_str):
subset=[]
collection=[]
subset=self.get_subset_from_persistant(self.__class__.__name__, conditional_str)
for entity in subset:
collection.append(self.get_new_entity(entity))
return(collection)
class Company(Entity):
pass
MacBook-Pro-de-Hugo:Attractora hvillalobos$ virtual/bin/python3 control.py
Traceback (most recent call last):
File "control.py", line 14, in <module>
company_collection=Company().get_collection('')
File "/Users/hvillalobos/Dropbox/Code/Attractora/model.py", line 31, in get_collection
subset=self.get_subset_from_persistant(self.__class__.__name__, conditional_str)
TypeError: get_subset_from_persistant() missing 1 required positional argument: 'conditional_str'
내가의 이유를 찾을 수 없습니다 오류.
무엇이 오류입니까? 그리고 왜 그것을 클래스 메소드로 만들고 싶습니까? – EyuelDK
변경 전과 똑같은 오류가 발생합니다. "get_subset_from_persistant()에 1 개의 필수 위치 인수가 누락되었습니다 : 'conditional_str'". 파이썬에서 클래스 메소드를 사용하는 법을 배우기 때문에 그렇게하고 싶습니다. –