나는 OOP 프로그래밍을 처음 접했고 파이썬에서 다형성을 이해하려고 노력하고있다. 온라인에서 찾은 모든 튜토리얼은 이처럼 매우 모호해 보인다. How does polymorphism work in Python?, 다형성의 아이디어를 이해하는 데 도움이된다. 그런데이를 Tkinter 나 다른 모듈들에 어떻게 적용해야합니까? 누군가 Tkinter에서 다형성의 좋은 예를 설명해 줄 수 있습니까?Tkinter로 파이썬 다형성
- 고마워요.
나는 OOP 프로그래밍을 처음 접했고 파이썬에서 다형성을 이해하려고 노력하고있다. 온라인에서 찾은 모든 튜토리얼은 이처럼 매우 모호해 보인다. How does polymorphism work in Python?, 다형성의 아이디어를 이해하는 데 도움이된다. 그런데이를 Tkinter 나 다른 모듈들에 어떻게 적용해야합니까? 누군가 Tkinter에서 다형성의 좋은 예를 설명해 줄 수 있습니까?Tkinter로 파이썬 다형성
- 고마워요.
다형성은 CS에서 다소 다형성 개념입니다. OO에 관해서는 주로 'polymorphic type-based dispatch'를 의미합니다. 즉, 속성의 메소드/해상도의 구체적인 구현은 객체의 유형에 따라 런타임에 선택됩니다. 예를 들어 :
whatever(Baaz())
whatever()
작품 : whatever()
를 modifiy하지 않고
class Baaz(object):
def do_this(self):
return -1
및 whatever()
에 전달 :
class Foo(object):
def do_this(self):
return 42
class Bar(object):
def do_this(self):
return 84
def whatever(*objects):
for obj in objects:
print obj.do_this()
objects = [Foo(), Bar()]
whatever(*objects)
점은 지금 새로운 클래스를 만들 수 있다는 것입니다 어떤 객체라도 do_this(self)
메소드를 가지고 있고, do_this()
의 정확한 구현은 b에 의해 자동으로 선택됩니다. eing은 객체 자체를 찾았습니다.
def foo_do_this(foo):
return 42
def bar_do_this(bar):
return 84
def whatever(*objects):
for obj in objects:
if obj.__class__.__name__ == "Foo":
print foo_do_this(obj)
elif obj.__class__.__name__ == "Bar":
print bar_do_this(bar)
else:
print "dont know how to handle '%s', sorry" % (obj.__class__.__name__)
내가 xxx_do_this()
의 새로운 구현을 수용 할 whatever()
을 편집해야합니다.
내가 Tkinter를 사용하지 않기 때문에 아니,이, Tkinter를 다형성 의 "좋은 예가 아니다 -하지만 당신은 위의 예제를 이해한다면 당신은 Tkinter를 다형성 꽤 몇 가지 예를 발견 할 수 있어야한다 거의 모든 파이썬 모듈이나 패키지와 마찬가지로.
Tkinter의 다형성 * 예 : – joaquin
cf 나의 마지막 단락 –
초보자의 경우 tkinter는 일반적인 클래스 상속 예제보다 약간 복잡합니다. Tk 최상위 도구, GUI 프레임 워크와 관련된 응용 프로그램 메인 루프 및 기타 자료 – joaquin