Вот простая функция для достижения желаемого результата, предполагая, что вы хотите получить имя переменной, где экземпляр назначен из вызова метода:
import inspect
def get_instance_var_name(method_frame, instance):
parent_frame = method_frame.f_back
matches = {k: v for k,v in parent_frame.f_globals.items() if v is instance}
assert len(matches) < 2
return matches.keys()[0] if matches else None
Вот пример использования:
class Bar:
def foo(self):
print get_instance_var_name(inspect.currentframe(), self)
bar = Bar()
bar.foo() # prints 'bar'
def nested():
bar.foo()
nested() # prints 'bar'
Bar().foo() # prints None
public function ajax_chats($id)
{
$user_id = $this->session->userdata('UserId');
$list = $this->users->get_msg_byid($id);
$data = array();
foreach ($list as $users)
{
$chat_time = $users->SendDate;
$time = date('H:i', $chat_time);
$row = array();
if($users->SenderId==$user_id && $users->RecieverId==$id){
$row[] = '<div class="darker"><span class="time-left">'.$time.'</span>
<span class="text-right"><p>'. $users->Content.'</p></div>';}
if($users->SenderId==$id && $users->RecieverId==$user_id){
$row[] = '<div class="lighter"><span class="time-right">'.$time.'</span>
<p>'. $users->Content.'</p></div>';
}
$data[] = $row;
}
$output = $data;
echo json_encode($output);
}