这是一个非常简单的代码,用于演示我遇到的问题.这里发生的是我正在创建同一个类的两个不同实例,但更改一个属性会改变另一个实例的相应属性.我不确定为什么会这样.这在Python中是正常的还是我遇到了一些完全混乱的东西?
class exampleClass(object):
attribute1=0
attribute2="string"
x=exampleClass
x.attribute1=20
x.attribute2="Foo"
y=exampleClass
y.attribute1=60
y.attribute2="Bar"
print("X attributes: \n")
print(x.attribute1)
print(x.attribute2)
print("Y attributes: \n")
print(y.attribute1)
print(y.attribute2)
Run Code Online (Sandbox Code Playgroud)
这是程序从我的控制台出来的样子:
>>>
X attributes:
60
Bar
Y attributes:
60
Bar
>>>
Run Code Online (Sandbox Code Playgroud)
我认为应该说:
X attributes:
20
Foo
Y attributes:
60
Bar
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我在设置项目框架时遇到了麻烦,因为现在指南要求我使用仅Linux命令,而且我在Windows上.直到这个项目之前的整个指南与Windows没有兼容性问题,直到练习46中的一行代码.
我能够做到这一点:
$ mkdir -p projects
$ cd projects/
$ mkdir skeleton
$ cd skeleton
$ mkdir bin NAME tests docs
Run Code Online (Sandbox Code Playgroud)
我无法做到这一点:
$ touch NAME/__init__.py
$ touch tests/__init__.py
Run Code Online (Sandbox Code Playgroud)
('touch'不被识别为内部或外部命令,可操作程序或批处理文件.)
我知道这甚至不是这个练习的难点,但是作者并没有提供任何关于"触摸"或者他突然使用Linux的话.