Type error : importing things and doesn't work
Type error : importing things and doesn't work
伙计们,你能帮忙吗?
你看我创建了一个模块(如果你想知道如何获取 Hello world book 2nd edition)并导入它但功能不起作用。这是模块和脚本
coin.py
class Coin:
def flip_coin(self, op):
a = random.choice(op)
easygui.msgbox(a)
脚本
import random
import easygui
from coin import Coin
op = ["Heads", "Tails"]
easygui.msgbox("Ready?")
Coin.flip_coin()
你们想看错误:
Traceback (most recent call last): File "C:\Python27\Hello world\coin", line 9, in <module> flip_coin() TypeError: flip_coin() takes exactly 2 arguments (0 given)
问题是(除了您的问题没有实际错误 ;-) 之外)您还没有实例化 Coin
class 的对象,并且您不要传入 op
.
此外,由于 Coin
存在于单独的模块中,因此如果您使用它们,也需要导入 random
和 easygui
。
coin.py
import random
import easygui
class Coin:
def flip_coin(self, op):
a = random.choice(op)
easygui.msgbox(a)
脚本
import easygui
from coin import Coin
coin = Coin() # instantiate the class
easygui.msgbox("Ready?")
coin.flip_coin(["Heads", "Tails"])
但是,当您实际上不需要存储状态时使用 class 并不是 Pythonic。
相反,您可以只留下 def flip_coin(op):
一个自由函数 -- 而且,因为硬币通常没有比正面或反面更多的选择:
import random
import easygui
def flip_coin():
a = random.choice(["Heads", "Tails"])
easygui.msgbox(a)
easygui.msgbox("Ready?")
flip_coin()
伙计们,你能帮忙吗? 你看我创建了一个模块(如果你想知道如何获取 Hello world book 2nd edition)并导入它但功能不起作用。这是模块和脚本
coin.py
class Coin:
def flip_coin(self, op):
a = random.choice(op)
easygui.msgbox(a)
脚本
import random
import easygui
from coin import Coin
op = ["Heads", "Tails"]
easygui.msgbox("Ready?")
Coin.flip_coin()
你们想看错误:
Traceback (most recent call last): File "C:\Python27\Hello world\coin", line 9, in <module> flip_coin() TypeError: flip_coin() takes exactly 2 arguments (0 given)
问题是(除了您的问题没有实际错误 ;-) 之外)您还没有实例化 Coin
class 的对象,并且您不要传入 op
.
此外,由于 Coin
存在于单独的模块中,因此如果您使用它们,也需要导入 random
和 easygui
。
coin.py
import random
import easygui
class Coin:
def flip_coin(self, op):
a = random.choice(op)
easygui.msgbox(a)
脚本
import easygui
from coin import Coin
coin = Coin() # instantiate the class
easygui.msgbox("Ready?")
coin.flip_coin(["Heads", "Tails"])
但是,当您实际上不需要存储状态时使用 class 并不是 Pythonic。
相反,您可以只留下 def flip_coin(op):
一个自由函数 -- 而且,因为硬币通常没有比正面或反面更多的选择:
import random
import easygui
def flip_coin():
a = random.choice(["Heads", "Tails"])
easygui.msgbox(a)
easygui.msgbox("Ready?")
flip_coin()