python3中的错误(TypeError:“模块”对象不可调用)

时间:2020-04-20 16:18:33

标签: python python-3.x tkinter pyperclip

我是编程的新手,我试图制作一个简单的程序来替换长度超过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 个答案:

答案 0 :(得分:2)

您正试图调用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")

答案 1 :(得分:0)

Tk是一个模块,基本上,只有您用您的代码中的另一个名称调用它,它才是tkinter模块。这就是为什么您不能做properties的原因。 您可能想要做类似的事情:

easierTest({ foo: "" }); // false
easierTest({ id: "", foo: "" }); // true
easierTest({ id: "", foo: "", bar: "" }); // false
easierTest({ id: "", foo: "", bar: false }); // true
easierTest({ id: "", baz: {} }); // false
easierTest({ id: "", baz: { a: "" } }); // true

Tk()

将NameOfClass替换为您要使用的类的名称。