这是我的课:
class variable(object):
def __init__(self, name, name_alias, parents,values,table):
#name of the variable
self.name = ""
这是有问题的函数:
f是一个file.txt文件(在“main function”中打开)
^{pr2}$我的.txt文件是:
VAR
name MaryCalls
VAR
name JohnCalls
VAR
name Burglary
VAR
name Earthquake
VAR
name Alarm
我在那份报纸上看到的是:
警报
警报
警报
警报
警报
但我想:
玛丽·考尔斯
约翰考尔斯
盗窃
地震
警报
怎么了?为什么列表中以前的所有条目都在更改?在
谢谢你!在
1)如果要在
variable
的构造函数中初始化名称,则必须进一步缩进赋值。在2)您的主要问题是,您希望使用以下行创建
^{pr2}$variable
的新实例:你必须写下:
主要问题是当代码检测到以“VAR”开头的行时,它将类变量分配给x,而不是类的实例。要做到这一点,您需要调用这个类,该类最后调用了类
__init__()
方法(如果它有)。你的有,但是它需要5个论点,在创造的时候没有一个是已知的。在在这种情况下,最简单的方法是为每个参数分配一个默认值,这意味着“还没有值”,并将这些值分配给正在创建的实例(
self
)。在我的意思是:
行
x=variable
使x
引用类variable
。您永远不会创建该类的任何实例,而是反复修改类级变量name
。在在程序的末尾,当您打印时,
variable.name
当然有最后一个赋值给它,在本例中是'Alarm'
。在如果执行
print(list_of_variables)
,您将看到以下内容:等等
将
^{pr2}$x = variable
更改为x = variable()
,您将看到(例如):等等
相关问题 更多 >
编程相关推荐