>  Q&A  >  본문

Python 하위 클래스가 전역 함수를 재정의할 수 있나요?

예를 들어 a.py에는 클래스 A가 있습니다

A에는 여러 메서드가 있으며, 모두 전역 함수 hello()(클래스 외부에서 정의되지만 a.py에서도 정의됨)를 호출합니다.

하위 클래스 B를 작성하고 싶지만 B가 새로 정의된 hello()를 호출하고 싶다고 가정해 보겠습니다. 이것이 가능합니까?

으아악 으아악

인사말을 바꾸지 말고 다음과 같이 출력하길 원합니다:

b = B()
b.greeting()
'안녕'

曾经蜡笔没有小新曾经蜡笔没有小新2712일 전473

모든 응답(2)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-05-18 10:48:14

    상속을 사용해야 할 것 같습니다.

    회신하다
    0
  • 漂亮男人

    漂亮男人2017-05-18 10:48:14

    초대해주셔서 감사합니다.

    죄송합니다. 아직 귀하의 요구 사항을 완전히 이해하지 못했기 때문에 먼저 이론적으로 답변해 드리겠습니다. 질문자가 추가할 수 있는 내용이 있으면 답변을 더욱 개선하고 문제를 해결할 수 있는 코드를 제공할 수 있습니다.

    Python에서 메소드가 클래스와 논리적으로 결합될 수 있는 경우. 그런 다음 이 메서드를 클래스의 정적 메서드로 사용할 수 있습니다. 즉, @staticmethod로 장식할 수 있습니다. @staticmethod装饰一下。

    如果将hello()作为类A和类B的静态方法,那么在各自的类中用cls.hello()就可以调用各自版本的hello了。

    根据题主的描述,在类B中含有hello(),那么我想将其作为静态方法是没有问题的。如果有其他模块想要调用a.py中的hello(),可以直接使用A.hello()

    hello()가 클래스 A와 클래스 B의 정적 메서드로 사용되는 경우 해당 클래스에서 cls.hello()를 사용하여 해당 클래스를 호출합니다. 안녕하세요 버전.

    주제 설명에 따르면 클래스 B에는 hello()가 포함되어 있어 static 메소드로 사용하는데 문제가 없을 것 같습니다. a.py에서 hello()를 호출하려는 다른 모듈이 있는 경우 A.hello()를 직접 사용할 수 있습니다. #🎜🎜# #🎜🎜# 질문의 요구 사항을 잘못 이해한 경우 정정해 주세요. #🎜🎜#

    회신하다
    0
  • 취소회신하다