python - 将作为参数给出的任意属性更改为函数
问题描述
对于一个项目,我正在尝试重新创建一个写在 Paper 上的系统。它涉及从 F 到 A 的排名顺序,作为对象属性在该尺度上排名的多个统计数据,以及旨在将其中一个统计数据作为输入并将其提高或降低一定量的函数。问题是我需要该函数来更改函数本身内部的属性。为了尝试这个,我首先列出了排名
stat_ranking = [None,"F","E","D","C","B","A",None]
然后创建了类
class char():
def __init__(self,X,Y,Z):
self.X = X
self.Y = Y
self.Z = Z
def stat_change(self,stat,amount):
for i in range(abs(amount)):
if amount > 0:
newValue = stat_ranking[stat_ranking.index(stat)+1]
else:
newValue = stat_ranking[stat_ranking.index(stat)-1]
if newValue != None:
stat = newValue
并在其中创建了一个对象。
box = char("D","C","A")
例如,我想要发生的是,我可以给它输入:
box.stat_change(box.X,2)
它会重复多次(在本例中为 2)。然后它将给定的统计数据(在本例中为“E”)移动超过 1(移动到“C”(或“E”,如果为负数)),然后将属性设置为该数量。Nones 是为了防止它超出范围。但是,它似乎创建了一个新的“stat”局部变量,并为其赋予了我想要放入属性中的值。我已经尝试返回“stat”并将属性设置为输出,这有效,但这需要它在函数之外,我不知道我将如何更改函数内部给出的属性。这不适用于给定的任务。
谢谢你。
解决方案
推荐阅读
- python - 在python中执行存储过程而不返回
- typescript - 如何在 Visual Studio 2019 中为 TypeScript 文件启用 ESLint?
- ruby - Jekyll:集合与数据文件
- c - 有没有更简单、更少机器级别的方式来表达或做与 (i & (1 << j)) 相同的事情?
- objective-c - UITableView 中的自定义单元格在 iOS 13 暗模式下无法正常工作
- apache-spark - 是否可以在 Spark 的内存数据帧中存储 5 天
- java - 如何在测试启动前修改 testNG DataProvider 数组对象(在 Saucelabs 中命名测试)
- javascript - 使用 jQuery 和 CSS3 的 TranslateX() 在将父元素滚动到视图中时显示元素
- python - 如何覆盖子类中的类变量?
- javascript - 如何将多个外部 Javascript 脚本合并为一个?