python - Python类和函数分开?
问题描述
为什么我的 IDE 将类和函数相互分离,如果我更改并运行,我会收到如下错误:TypeError: check_turn() missing 1 required positional argument: 'turn'
这就是我的代码最初的样子
class Dev:
players = ['Bob', 'Anne']
turn = [0, 1]
def check_turn(self, players, turn):
for i in turn:
if i == 0:
print("It's {} turn".format(players[0]))
elif i == 1:
print("It's {} turn".format(players[1]))
return i
check_turn(players, turn)
这是在我需要改变它之后
def check_turn(players, turn):
for i in turn:
if i == 0:
print("It's {} turn".format(players[0]))
elif i == 1:
print("It's {} turn".format(players[1]))
return i
class Dev:
players = ['Bob', 'Anne']
turn = [0, 1]
check_turn(players, turn)
解决方案
在你的情况下,我相信使用一个类没有任何意义,使用一个简单的方法就可以了。
类提供了一种将数据和功能捆绑在一起的方法。创建一个新类会创建一种新类型的对象,允许创建该类型的新实例。每个类实例都可以附加属性以维护其状态。类实例也可以具有用于修改其状态的方法(由其类定义)。
players = ['Bob', 'Anne']
turn = [0, 1]
def check_turn(players, turn):
for i in turn:
if i == 0:
print("It's {} turn".format(players[0]))
elif i == 1:
print("It's {} turn".format(players[1]))
return i
check_turn(players, turn)
输出 :
It's Bob turn
但是如果你想在创建类的实例时运行 check_turn() 方法,你必须通过以下方式更正它:
class Dev:
players = ['Bob', 'Anne']
turn = [0, 1]
def check_turn(self, players, turn):
for i in turn:
if i == 0:
print("It's {} turn".format(players[0]))
elif i == 1:
print("It's {} turn".format(players[1]))
return i
def __init__(self):
self.check_turn(self.players, self.turn)
Dev()
输出 :
It's Bob turn
推荐阅读
- android - Flutter 启动画面在加载时将图像拉伸一秒钟
- mongodb - 根据从 mongo 检索到的值获取枚举键
- css - 在 IE 中无法使用的 fontawesome 图标之间的动画
- javascript - 如何使用 jQuery 正确计算输入值?
- ios - iOS - 如何将捆绑包放入 Bundle.main.resourcePath?
- c# - 应该在哪个项目中使用事件溯源在 DDD 中实时读取模型(投影)?
- python - 将 IOB 格式数据列表转换为简单 IOB 格式数据
- java - 使用 Flyway 时出现 NoClassDefFoundError
- javascript - 为什么我不能在本地存储中将“1”作为键名?
- python-3.x - 如何为 GRU 模型设置网格搜索?