SystemTrader
135
2021-04-14 21:12:52 작성 2021-04-14 21:14:15 수정됨
5
230

파이참에서 파이썬 특정 클래스 상속 받은 클래스에서 생성자 자동 생성하는 방법 있을까요?


Eclipse에서 Java는 Generate Constructor from Superclass 를 통해 상당히 간편하게 만들 수 있는데 파이참도 이와 같은 방법이 있을까요?

혹은 파이썬 언어 차원에서 이를 간단히 해결할 수 있는 방법이 있을까요?

특정 라이브러리의 클래스를 상속받은 클래스를 생성하여 생성자를 정의하는데 생성자 오버로딩 된 것을 손수 구현하자니 너무 번거로워서요 ㅜ

0
  • 답변 5

  • aprilshower
    214
    2021-04-14 21:44:55

    Example 코드가 있을까?

  • SystemTrader
    135
    2021-04-14 22:33:59

    PyQt5라이브러리에서 PyQt5.QtWidgets에 있는 QPushButton를 상속받은 새로운 버튼 클래스를 만들어서 저만의 스타일을 적용시킨 클래스를 만들고자 합니다. 이 때 QPushButton에는 여러 생성자들이 있는데, 상속받은 클래스에서 자동으로 매개변수까지 맞추어 

    def __init__(self,x):

      super().__init__(x)

    의 형식의 생성자들을 전부 만들어주는 방법을 찾는거에요

    그렇지 않으면 상속받은 클래스에서 QPushButton의 생성방식을 그대로 사용할 수 없어서요

  • aprilshower
    214
    2021-04-14 23:12:15
    원하시는게 위의 코드 생성이라면  PyCharm 에서도 지원합니다.

    https://www.jetbrains.com/help/pycharm/generating-code.html

    https://www.jetbrains.com/pycharm/guide/tips/constructor-fields/
  • cathei
    413
    2021-04-15 00:05:35

    파이썬은 메소드 오버로딩 지원하지 않습니다.

    상속받는 클래스에서는 인자를 각각 만들 필요 없이

    def __init__(self, *args, **kwargs):
       super().__init__(*args, **kwargs)

    위 형태로 넘기면 됩니다.

  • SystemTrader
    135
    2021-04-20 21:54:31

    정말 감사합니다. 도움이 정말 많이됐습니다

  • 로그인을 하시면 답변을 등록할 수 있습니다.