在Python中避免我的全局变量,我有几个函数可以改变一个变量
发布时间:2020-12-20 11:31:50 所属栏目:Python 来源:网络整理
导读:我试图摆脱我的全局变量,但我不是成功的. 在这种情况下,我让用户在运行程序时分配坐标.从这些坐标开始,我们开始驾驶一艘船(在矩阵内),这意味着我控制运动的功能需要从输入功能访问这些坐标.移动功能还需要为坐标分配新值. koordx = 0koordy = 0distancetrave
我试图摆脱我的全局变量,但我不是成功的.
在这种情况下,我让用户在运行程序时分配坐标.从这些坐标开始,我们开始驾驶一艘船(在矩阵内),这意味着我控制运动的功能需要从输入功能访问这些坐标.移动功能还需要为坐标分配新值. koordx = 0 koordy = 0 distancetraveled = 0 def input (): global koordx global koordy koordx = int(input ("Assign Y coordinate)")) koordy = int(input("Assign Y coordinate")) ..... etc 这是移动的例子,改变了坐标. def north (): global distancetraveled distancetraveled += 2 global koordy koordy -= 1 def northeast(): global distancetraveled distancetraveled += 2 global koordx koordx += 1 global koordy koordy -= 1 def movement(): if... . .. : northeast() etc... #moves northeast input() movement() 这只是一个例子,我还有一些需要访问这些坐标及其值的函数.我怎样才能顺利摆脱全局变量? 这只是我的代码的一部分,我修改后使其更容易理解我需要帮助的内容. 任何提示将不胜感激. 解决方法
您可以创建一个Boat类,并封装Boat实例中的坐标和距离:
class Boat: def __init__(self,x,y,dist=0): self.x = x self.y = y self.dist=dist 然后你可以创建在Boats上运行的函数,并修改这些变量,或者你可以在Boat类中创建对变量进行操作的方法(这是一种更加面向对象的方式,并且更好地封装了状态) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |