code: def test_lazy_construction_can_happen_multiple_times(self):
      test_string = "this is a test"
      extra_string = "extra string"
  
      class ConstructedObject(FromParams):
          def __init__(self, string: str, extra: str):
              self.string = string
              self.extra = extra
  
      class Testing(FromParams):
          def __init__(self, lazy_object: Lazy[ConstructedObject]):
              first_time = lazy_object.construct(extra=extra_string)
              second_time = lazy_object.construct(extra=extra_string)
              assert first_time.string == test_string
              assert first_time.extra == extra_string
              assert second_time.string == test_string
              assert second_time.extra == extra_string
  
      Testing.from_params(
          Params({"lazy_object": {"string": test_string}})
      )
  
imports: from typing import Dict, Iterable, List, Mapping, Optional, Set, Tuple, Union
  import pytest
  import torch
  from allennlp.common import Lazy, Params, Registrable
  from allennlp.common.from_params import FromParams, takes_arg, remove_optional, create_kwargs
  from allennlp.common.testing import AllenNlpTestCase
  from allennlp.data import DataLoader, DatasetReader, Tokenizer
  from allennlp.models import Model
  from allennlp.models.archival import load_archive
  from allennlp.common.checks import ConfigurationError
label_desc: Use image node_id 25 for calling the TestFromParams obj's underlying member method code with example usage: obj.test_lazy_construction_can_happen_multiple_times() without return types