다음을 작성할 수 있도록 패키지를 어떻게 구현해야합니까?모듈/패키지에서 객체를 노출하는 방법은 무엇입니까?
내 모듈을 마켓이라고합니다. 바나나와 애플이
import market as mk
B = mk.Banana(0.99)
A = mk.Apple(1.10)
A.buy()
B.buy()
있습니다 : 그것은 내가 다음 코드 조각을 쓸 수 있도록하려면 내 goShopping.py에서 goShopping.py
라는 내 파이썬 스크립트의 작업 디렉토리에 폴더입니다 내 모듈의 일부 파일에있는 개체.
모듈 시장은 어떻게 작성되어야합니까?
modules.py에 fruits.py라는 파일이 있다고 가정 해 봅시다. 여기에 Banana 및 Apple 클래스를 정의합니다. 나는 다음과 같이 내가 위의 코드를 작성할 수 있습니다 알고
import market.fruits as mk
B = mk.Banana(0.99)
A = mk.Apple(1.10)
A.buy()
B.buy()
그러나 나는 그것을 원하지 않는다. 나는이 같은 __init__.py
에서 어떤 선언 (시장 폴더 안에 __init.py
) 문제에 대해 생각 솔루션으로
AttributeError: module 'market' has no attribute 'Banana'
:
from fruits import Apple,Banana.
는하지만 다음과 같은 오류가 발생합니다 :
B = mk.Banana(0.99)
어떻게 구성해야합니까? 내가 원하는대로 물건을 드러내 기 위해 쓰는가?
iOS 용 Pythonista를 사용하고 있습니다. 이것이 문제인지 궁금합니다.
당신이해야 할 일. 어떻게 과일을 가져 와서 Apple, Banana가 실패 했는가 - 오류 메시지는 무엇인가? 일반적으로 파이썬의 모든 이름은 모듈과 패키지 이름을 포함하여 대소 문자를 구분합니다. PEP-8은 소문자로 모두 해당하는 파일/폴더 이름을 사용해야 함을 의미합니다. – martineau
@martineau 질문을 제 오류 메시지와 함께 업데이트했습니다. 내 클래스 이름 만 대문자 – zeh
'B = mk.Banana (0.99)'줄에는 오류가 있지만'from fruit imported Apple, Banana'는'__init __. py'에 오류가 없다는 것이 이상하게 보입니다.'import' 행 바로 뒤에'print (Banana)'를 추가하고 그 결과로 오류가 발생하는지 확인하십시오. – martineau