파이썬에 포인터가 없다는 것을 알고 있지만 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
또는 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, b = b, a.