언어 서버 기반 자동 완성 기능이 널리 보급되기 전에는 자동 완성을 쉽게 만드는 방식으로 코드를 작성했는지 여부는 중요하지 않았습니다. Sublime과 같은 인기 있는 텍스트 편집기는 의미 있는 제안을 제공할 만큼 코드를 충분히 이해하지 못했습니다. 프로그래머는 종속성의 명령을 기억하거나 문서를 참조했습니다.
2024년에는 자동 완성 기능이 어디에나 있지만 우리 패키지가 이 작업을 반드시 쉽게 만들어준 것은 아닙니다. Factory Boy의 문서에서 다음 예를 살펴보세요.
import factory from datetime import datetime from .models import User class UserFactory(factory.Factory): class Meta: model = User arrival = factory.Faker( 'date_between_dates', date_start=datetime.date(2020, 1, 1), date_end=datetime.date(2020, 5, 31), )
도착 속성은 Faker의 date_between_dates() 메서드를 호출합니다. 불행하게도, Factory.Faker()는 어떤 Faker 메서드를 사용할 수 있는지 알려주지 않으며 Faker 메서드가 어떤 매개 변수를 선택하더라도 허용하는 매개 변수를 알려주지 않습니다. 이 코드는 언어 서버가 제공하는 이점을 완화합니다.
factory.LazyFunction()에서 Faker 호출을 래핑하여 Faker를 Factory_boy와 함께 사용하는 동안 자동 완성 기능을 얻을 수 있습니다.
import factory from datetime import datetime from .models import User fake = Faker() class UserFactory(factory.Factory): class Meta: model = User arrival = factory.LazyFunction(lambda: fake.date_between_dates( date_start=datetime.date(2020, 1, 1), date_end=datetime.date(2020, 5, 31), ))
factory.LazyFunction()에 전달된 함수는 팩토리가 인스턴스를 생성할 때를 평가합니다. 인수를 제공할 수 있도록 가짜 호출을 람다로 래핑합니다. 그리고 언어 서버는 fake.date_between_dates()가 허용하는 매개변수를 보여줄 수 있습니다.
faker 함수에 인수가 필요하지 않으면 설정이 덜 필요합니다. Faker의 first_name() 및 last_name() 메서드와 함께 Factory.LazyFunction()을 사용하는 방법은 다음과 같습니다.
import factory from datetime import datetime from .models import User fake = Faker() class UserFactory(factory.Factory): class Meta: model = User first_name = factory.LazyFunction(fake.first_name) last_name = factory.LazyFunction(fake.last_name)
결과 코드는 Factory.Faker()를 사용한 것보다 약간 길지만 언어 서버의 도움은 그만한 가치가 있습니다. 그렇지 않으면 지속적으로 문서를 확인해야 할 수도 있습니다.
입력하기가 너무 많으면 언제든지 더 짧은 이름으로 별칭을 지정할 수 있습니다.
from factory import Factory, LazyFunction as LazyFn from datetime import datetime from .models import User fake = Faker() class UserFactory(Factory): class Meta: model = User first_name = LazyFn(fake.first_name) last_name = LazyFn(fake.last_name)
위 내용은 Factory_boy를 사용할 때 Faker에 대한 자동 완성 기능이 향상되었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!