Выходной параметр, использующий вызов по ссылке для определенного пользователем объекта в Python

У меня есть один пользовательский объект. Я хочу передать в качестве ссылки (выходной параметр), чтобы значение входного объекта было изменено внутри функции и вернуться к вызываемой функции. Это может быть достигнуто с помощью списка или словаря, то есть изменяемого объекта. Но как достичь с помощью определенного пользователем объекта без использования списка и словаря. Ниже приведен фрагмент кода:-

class Test:          
    def __init__(self,data):
        self.data = data

def display(root):    # Simple Display function
    print(root.data)

#Don't want to use List to do pass by reference and out parameter. Instead pass object itself.
def assign(root,args): 
    if root is not None:
        args[0] = root

#Passed object itself, not as List     
def assign1(root,temp):
    if root is not None:
        temp = root

#Driver Function call    
root = Test(10)
display(root)
temp = None
args = [temp]
assign(root,args)   # Function in which args passed as out parameter
display(args[0])    # Gives Output: 10 

temp1 = None 
assign1(root,temp1) # Function in which object passed as out parameter
print(temp1)        # Gives Output: None
display(temp1)      # AttributeError: 'NoneType' object has no attribute 'data'

Может быть, я что-то упустил.

0 ответов

Другие вопросы по тегам