小编Ahm*_*lag的帖子

通过赋值传递:Python

我想了解以下代码变体:

a = [1, 2, 3]
b = a
b.append(4)
b = ['a', 'b']
print(a, b)
Run Code Online (Sandbox Code Playgroud)

我的理解是变量a指的是一个对象,该对象包含[1,2,3]内存中某个位置的列表,b现在指的是所指的同一对象a,并且通过该链接,我们在技术上附加了一个 not b。

输出: [1, 2, 3, 4] ['a', 'b']

我稍微更新了代码:

a = [1, 2, 3]
b = ['a', 'b']
b = a
b.append(4)
print(a, b)
Run Code Online (Sandbox Code Playgroud)

我的理解: b 现在通过第三行引用两个对象,第一个列表 ['a','b']和第二个列表(a最初是指)。[1,2,3]b = a

输出: [1, 2, 3, 4] [1, 2, 3, 4]

最后的代码变体:

a = [1, 2, 3]
b = ['a', 'b'] …
Run Code Online (Sandbox Code Playgroud)

python pass-by-reference variable-assignment

2
推荐指数
2
解决办法
83
查看次数

Python中实现双向关联关系

在 Martin Fowler 的 UML Distilled 的“双向关联”部分,他说:

在编程语言中实现双向关联通常有点棘手,因为您必须确保两个属性保持同步。使用 C#,我使用以下代码来实现双向关联:

书中的代码

class Car...
public Person Owner {
get {return _owner;}
set {
if (_owner != null) _owner.friendCars().Remove(this);
_owner = value;
if (_owner != null) _owner.friendCars().Add(this);
}
}
private Person _owner;
...

class Person ...
public IList Cars {
get {return ArrayList.ReadOnly(_cars);}
}
public void AddCar(Car arg) {
arg.Owner = this;
}
private IList _cars = new ArrayList();
internal IList friendCars() {
//should only be used by Car.Owner
return _cars;
}
.... …
Run Code Online (Sandbox Code Playgroud)

python oop uml class-diagram bidirectional

2
推荐指数
1
解决办法
556
查看次数

错误在定义后将值分配给字符串文字数组

当我尝试在定义点初始化字符串文字数组时它工作正常:

    char* arr[3] = { "ahmed"  , "saeed" , "ahmed" }; 
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在定义点之后将这些值分配给它时,它会从第二个值开始给出错误:

char* arr[3] ; 

arr[3] = { "ahmed"  , "saeed" , "ahmed"}; 
Run Code Online (Sandbox Code Playgroud)

这里有什么不同,最近发生了什么?

错误:

Severity    Code    Description Project File    Line    Suppression State
Error (active)  E0146   too many initializer values structs_consts  

Severity    Code    Description Project File    Line    Suppression State
Error   C2440   '=': cannot convert from 'initializer list' to 'char *' structs_consts
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++

1
推荐指数
1
解决办法
51
查看次数