gpt4 book ai didi

python - Python中的指针?

转载 作者:IT老高 更新时间:2023-10-28 21:06:59 24 4
gpt4 key购买 nike

我知道 Python 没有指针,但是有没有办法让这个 yield 2 代替

>>> a = 1
>>> b = a # modify this line somehow so that b "points to" a
>>> a = 2
>>> b
1

?


这是一个示例:我希望 form.data['field']form.field.value 始终具有相同的值。这不是完全必要的,但我认为它会很好。


例如,在 PHP 中,我可以这样做:

<?php

class Form {
public $data = [];
public $fields;

function __construct($fields) {
$this->fields = $fields;
foreach($this->fields as &$field) {
$this->data[$field['id']] = &$field['value'];
}
}
}

$f = new Form([
[
'id' => 'fname',
'value' => 'George'
],
[
'id' => 'lname',
'value' => 'Lucas'
]
]);

echo $f->data['fname'], $f->fields[0]['value']; # George George
$f->data['fname'] = 'Ralph';
echo $f->data['fname'], $f->fields[0]['value']; # Ralph Ralph

输出:

GeorgeGeorgeRalphRalph

ideone


或者在 C++ 中这样(我认为这是对的,但我的 C++ 生锈了):

#include <iostream>
using namespace std;

int main() {
int* a;
int* b = a;
*a = 1;
cout << *a << endl << *b << endl; # 1 1

return 0;
}

最佳答案

仅更改该行是无法做到的。你可以这样做:

a = [1]
b = a
a[0] = 2
b[0]

这会创建一个列表,将引用分配给 a,然后将 b 也分配给 b,使用 a 引用将第一个元素设置为 2,然后使用 b 引用变量进行访问。

关于python - Python中的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3106689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com