Ошибка в python3 (TypeError: объект 'module' не вызывается) - PullRequest
0 голосов
/ 20 апреля 2020

Я новичок в программировании, и я пытаюсь сделать простую программу, чтобы заменить что-то, что я скопировал на строку длиной более 10 символов, это код:

import pyperclip
import tkinter as Tk
while True:
 r = Tk()
 r.withdraw()
 try:
      selection = r.selection.get(selection="CLIPBOARD")
 except tk.TclError:
      selection = None
      sleep(0.1)

 try:
     selection = r.selection.get(selection="CLIPBOARD")
 except tk.TclError:
     selection = None
     r.clipboard_clear()
     if len(result) > 10:
       pyperclip.copy("aaa")

Но это дает мне это ошибка:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: 'module' object is not callable
>>>

Я понимаю, что это, вероятно, связано с модулем tkinter, но я не знаю, что это такое и как его решить.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2020

Вы пытаетесь вызвать Tk, который на самом деле является псевдонимом для модуля tkinter. Что вы хотели бы сделать в этом случае:

r = Tk.Tk()
import pyperclip
import tkinter as Tk
while True:
 r = Tk.Tk()
 r.withdraw()
 try:
      selection = r.selection.get(selection="CLIPBOARD")
 except tk.TclError:
      selection = None
      sleep(0.1)

 try:
     selection = r.selection.get(selection="CLIPBOARD")
 except tk.TclError:
     selection = None
     r.clipboard_clear()
     if len(result) > 10:
       pyperclip.copy("aaa")
0 голосов
/ 20 апреля 2020

Tk - это модуль, в основном, это модуль tkinter только для того, чтобы вы назвали его под другим именем в вашем коде. Вот почему вы не можете сделать Tk(). Вы, вероятно, хотите сделать что-то вроде:

r = Tk.NameOfClass()

или

from Tkinter import NameOfClass

Замените NameOfClass на имя класса, который вы хотите использовать.

...