1 Востаннє редагувалося koala (01.09.2022 10:31:48)

Тема: Передати словник в класах

Потрібно зробити, щоб за допомогою super при передачі з obj1, obj2 клас В передавав значення, а клас А ключі. Був би вдячний за допомогу.

dct = {}
class A:
    global dct
    def __init__(self, val1, val2):
        self.val1 = val1
        self.val2 = val2
        
    def dction(self, dicct):
        key = dicct.keys()
        return key
        
class B(A):
    def __init__(self, var1, var2, var3):
        super().__init__(var1, var2)
        self.val3 = var3
        
    def getKeyValues(self, ddct):
        super().dction(dct)
        value = ddct.values()               
        return value    
        
        
        
a = A(1, 2)

# print(a.dction({"e": 1, "q": 4, "t": 6}))

b = B(1, 2, 3)

obj1, obj2 = b.getKeyValues({"eq": 14, "qq": 44})
print('obj1', obj1)
print('obj2', obj2)

2 Востаннє редагувалося koala (01.09.2022 10:32:03)

Re: Передати словник в класах

Ем... а в чому проблема цього коду, окрім нечитабельних ідентифікаторів і загальної безглуздості, ну тобто того, що він навчальний? Чим саме він вас не влаштовує?

P.S. додав вам теги code.

3

Re: Передати словник в класах

функція def getKeyValues через super не повертає ключі

4

Re: Передати словник в класах

Логічно. Читаємо умову:

leolot написав:

клас В передавав значення, а клас А ключі.

З чого це B.getKeyValues має повертати ключі, якщо в умові написано, що має повертати значення?
Це програмування. Комп'ютер робить рівно те, що ви йому кажете, а не те, чого ви хочете. Якщо вам треба щось інше - то спробуйте для початку словами описати, яке саме "інше" вам потрібне.

5

Re: Передати словник в класах

у функції getKeyValues прописаний super, який посилається на функцію класу А dction, яка повертає ключі. В тому і є питання, чому воно не повертає..

6

Re: Передати словник в класах

leolot написав:

у функції getKeyValues прописаний super, який посилається на функцію класу А dction, яка повертає ключі. В тому і є питання, чому воно не повертає..

А чому ви вирішили, що dction не повертає ключі? Я бачу, що повертає. Я не знаю, нащо так зроблено, ані в умові нічого про це не сказано, ані назви ідентифікаторів не дають жодного уявлення, але dction повертає ключі, це 100%.

7

Re: Передати словник в класах

koala написав:
leolot написав:

у функції getKeyValues прописаний super, який посилається на функцію класу А dction, яка повертає ключі. В тому і є питання, чому воно не повертає..

А чому ви вирішили, що dction не повертає ключі? Я бачу, що повертає. Я не знаю, нащо так зроблено, ані в умові нічого про це не сказано, ані назви ідентифікаторів не дають жодного уявлення, але dction повертає ключі, це 100%.

diction повертає ключі у класі А(якщо напряму), але при виклику її через Super у функції класу В не повертає.

Можливо не коректно поставив питання на початку. Але потрібно щоб через функцію класу В передавало значення, і щоб в цій функції був super, щоб через нього діставати ключі.

8

Re: Передати словник в класах

leolot написав:

потрібно щоб через функцію класу В передавало значення

Ну то передавайте його крізь, а не просто запитуйте.