Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,247
Записей в блоге: 4

Наследовать атрибут

30.10.2021, 12:07. Показов 7601. Ответов 76

Студворк — интернет-сервис помощи студентам
Добрый день!

Подскажите как наследовать атрибуты из родительских классов?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class A:
    def __init__(self):
        self.x = 5  # первая переменная
 
class B(A):
    def __init__(self):
        self.y = 4  # вторая переменная
        
 
class C(B):
    def Add(self):
        return self.x + self.y
        
    
    
t = C()
t.Add()
Сейчас получаю ошибку:
AttributeError: 'C' object has no attribute 'x'

Почему в классе C не видно переменной x ?

Спасибо!

Добавлено через 13 минут
Мне нужно в классах A и B определить переменные (атрибуты) x и y и выполнить с ними действия в методе класса C

Добавлено через 5 минут
Это правильное решение?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A:
    def __init__(self):
        self.x = 5  # первая переменная
 
class B(A):
    y = 4
       
 
class C(B):
    def Add(self):
        return self.x + self.y
        
    
t = C()
t.Add()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2021, 12:07
Ответы с готовыми решениями:

Не получается наследовать атрибут
Добрый день! Учу ООП. Подскажите в чем проблема Так работает: class Formula2(): def foo(self, x,y): self.x = x ...

Не получается наследовать метод из класса
Добрый день! Изучаю ООП, что-то не получается применить метод из родительского класса. Подскажите где ошибка class A: def...

Как наследовать метод класса, который вызвает функцию класса из которого мы его наследуем?
Разработать интерфейс IPrint. Интерфейс содержит метод Print(), который не принимает параметров и возвращает void. Для классов...

76
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
30.10.2021, 20:35
Студворк — интернет-сервис помощи студентам
Viktorrus, да не за что извиняться. Душевно подискутировали
И вообще, мое почтение!
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
30.10.2021, 20:37
iSmokeJC, Спасибо!
0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,313
30.10.2021, 21:08
Цитата Сообщение от iSmokeJC Посмотреть сообщение
разместите в каждом из классов свои конструкторы и наследования вообще не будет
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Будет
iSmokeJC, я честно тоже не совсем понимаю такой момент
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A:
    def __init__(self):
        self.x = 5  # первая переменная
 
class B():
    def __init__(self):
        self.y = 4
       
class C(A,B):
    
    def Add(self):
        return self.x + self.y
        
t = C()
print(t.Add())
почему же тогда AttributeError: 'C' object has no attribute 'y'.

Добавлено через 4 минуты
я считал что метод __init__ вызывается при создании экземпляра класса но так как в потомке мы не создаем экземпляр то __init__ родителя нужно вызывать явно через super. что то я кажется пропустил это у лутца.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
30.10.2021, 21:22
Semen-Semenich, тут у тебя множественное наследование. Я в этой кухне не шарю

Добавлено через 2 минуты
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
так как в потомке мы не создаем экземпляр
Потомок всегда создает экземпляр родителя.

Добавлено через 3 минуты

Не по теме:

Ну вы подзапарили на ночь глядя )))

0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,313
31.10.2021, 09:54
да тут еще курить и курить мануалы нужно. Python - о множественном наследовании
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
31.10.2021, 10:29
iSmokeJC, Semen-Semenich, Спасибо вам, благодаря дискуссии с Вами, я понял разницу между наследованием и прямым вызовом атрибутов.
Лутц ввел меня в заблуждение, используя прямой вызов атрибутов в дереве наследования.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from classtools import AttrDisplay
 
class Person(AttrDisplay):
    def __init__(self, name, job=None, pay=0):
        self.name = name
        self.job = job
        self.pay = pay
    def lastName(self):
        return self.name.split()[-1]
    def giveRaise(self, percent):
        self.pay = int(self.pay * (1 + percent))
    #def __str__(self):
    #    return '[Person: %s, %s}' % (self.name, self.pay)
 
class Manager(Person):
    def __init__(self, name, pay):
        Person.__init__(self, name, 'mgr', pay)
 
    def giveRaise(self, percent, bonus=.10):
        Person.giveRaise(self, percent + bonus)
 
if __name__ == '__main__':
    bob = Person('Bob Smith')
    sue = Person('Sue Jones', job='dev', pay=100000)
    #print(bob.name, bob.pay)
    #print(sue.name, sue.pay)
    print(bob)
    print(sue)
    print(bob.lastName(), sue.lastName())
    sue.giveRaise(.10)
    print(sue)
    tom = Manager('Tom Jones', 50000)
    tom.giveRaise(.10)
    print(tom.lastName())
    print(tom)
Это код из его книги Лутц М. Изучаем Python (том 2, 5-е издание, 2019) стр. 72 .
И вот еще выдержка из этой книги:
Как насчет super?
Цитата из Лутц М. Изучаем Python (том 2, 5-е издание, 2019) стр. 69 :
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
" Для расширения унаследованных методов в примерах данной главы вызывались исходные методы через имя суперкласса: Person.giveRaise (...). Это традиционная
и простейшая схема в Python, которая используется в большей части книги.
Возможно, программистам на Java будет особенно интересно узнать, что в Python
также имеется встроенная функция super, которая позволяет вызывать методы суперкласса более обобщенно. Тем не менее, в Python 2.Х применять ее громоздко;
она отличается по форме в линейках Python 2.Х и Python З.Х; полагается на необычную семантику в Python З.Х; шероховато работает с перегрузкой операций в Python;
и не всегда хорошо сочетается с традиционно реализованным множественным наследованием, где обращения к единственному суперклассу будет недостаточно.
В защиту вызова super следует отметить, что с ним тоже связан допустимый сценарий использования (совместная координация одинаково именованных методов
в деревьях множественного наследования). Однако он опирается на упорядочение
классов MRO (Method Resolution Order — порядок распознавания методов), которое многие считают экзотическим и искусственным; нереалистично предполагает,
что будет надежно применяться универсальное развертывание; не полностью поддерживает замещение методов и списки аргументов переменной длины; к тому же для многих использование сценария, редко встречающегося в реальном коде на Python,
представляется невразумительным решением.
Из-за перечисленных недостатков предпочтение в книге отдается обращению к суперклассам по явным именам, а не посредством super, та же политика рекомендуется для новичков и представление встроенной функции super откладывается до
главы 32. О встроенной функции super обычно лучше судить после того, как вы
освоите более простые и в целом более традиционные, в стиле Python, способы достижения тех же целей, особенно если вы — новичок в ООП. Темы вроде MRO и
совместной координации методов в деревьях множественного наследования одинаково именованных методов не кажутся слишком востребованными начинающими,
впрочем, как и остальными.
Мой совет всем программистам на Java, входящим в читательскую аудиторию: я 
предлагаю не поддаваться искушению и не применять встроенной функции super
из Python до тех пор, пока у вас не появится возможность изучить связанные с ней
тонкие последствия. Как только вы перейдете на множественное наследование, она
окажется не тем, что вы думаете, а чем-то большим, нежели ваши возможные ожидания. Вызываемый класс может вообще не быть суперклассом и даже варьироваться в зависимости от контекста. Или переформулировав фразу из фильма “Форрест Гамп”: встроенная функция super из Python как коробка шоколадных конфет — никогда  не знаешь, какая начинка тебе попадется!"
Хотя вновь перечитав эту цитату, я понял, что прямое обращение нужно использовать при множественном наследовании.

Резюмирую: В ООП нужно четко понимать разницу между механизмом наследования и прямым вызовом атрибутов.
2
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,313
31.10.2021, 10:39

Не по теме:

век живи, век учись, - сказал ёжик, слезая с кактуса

0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
31.10.2021, 11:53
Мой первый сегодняшний комментарий, поясняющий разницу между механизмом наследования и прямым вызовом, почему то затерялся. Поэтому повторю его еще раз, благо я его сохранил в текстовом редакторе.
iSmokeJC, На свежую голову поясню свои ошибки.
У меня вчера почему то замкнуло, что вызов метода из суперкласса, это почему то не наследование.
На самом деле это может не быть наследованием, а может и быть наследованием.
Наследование, это не то, что мы можем вызвать, а механизм, который работает при поиске объекта, который вызывается.
Сейчас попробую объяснить, что я имею ввиду.
Особенность ООП состоит в том, что мы можем обратится к любому классу и к любому объекту в этом классе напрямую, не зависимо от того, принадлежат ли вызывающий класс и вызываемый класс одному дереву наследования.
Пример.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class A:
    def __init__(self):
        self.x = 5  # первая переменная
 
        
 
class C():
 
    def __init__(self, z):
        A.__init__(self)
        self.z = z
 
    def Add(self):
        return self.x + self.z
        
  
t = C(3)
print(t.Add())           # 8
Здесь нет дерева наследования и не используется механизм наследования, а идет вызов при прямом обращении к нужному объекту в другом классе.
А теперь получим тот же результат, используя механизм наследования в дереве наследования.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class A:
    def __init__(self):
        self.x = 5  # первая переменная
 
class B(A):
    
    def __init__(self):
        super().__init__()
        self.y = 4  # вторая переменная
        
 
class C(B):
 
    def __init__(self, z):
        super().__init__()
        self.z = z
 
    def Add(self):
        return self.x + self.z
        
  
t = C(3)
print(t.Add())         # 8

Но возможен и третий вариант, когда используются одновременно и механизм наследования и прямое обращение к объекту.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class A:
    def __init__(self):
        self.x = 5  # первая переменная
 
class B():
    
    def __init__(self):
        A.__init__(self)
        self.y = 4  # вторая переменная
        
 
class C(B):
 
    def __init__(self, z):
        super().__init__()
        self.z = z
 
    def Add(self):
        return self.x + self.y + self.z
        
  
t = C(3)
print(t.Add())          # 12

Однако тот же результат мы получим, используя смешивание наследования и прямого вызова в трех классах связанных деревом наследования.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class A:
    def __init__(self):
        self.x = 5  # первая переменная
 
class B(A):
    
    def __init__(self):
        A.__init__(self)
        self.y = 4  # вторая переменная
        
 
class C(B):
 
    def __init__(self, z):
        super().__init__()
        self.z = z
 
    def Add(self):
        return self.x + self.y + self.z
        
  
t = C(3)
print(t.Add())           # 12
Хотя здесь мы получаем тот же результат, что и при чистом наследовании, но искажается смысл наследования. Так как мы имеем не чистое наследование а смесь наследования и прямого вызова.

Добавлено через 1 час 2 минуты
Я о чем еще подумал. Видимо питон не может правильно осуществить механизм наследования при множественном наследовании. И поэтому модель множественного наследования нужно создавать смешивая встроенный механизм наследования и моделируя наследование из другой ветки с помощью прямого вызова конструкторов, обращаясь к ним, как к квалифицированным переменным, с явным указанием класса и конструктора в нем и размещая это в конструкторе вызывающего класса. Что бы можно было наследовать атрибуты из того класса, создавая их аналог в подклассе. По моему как то так. Попрактикуемся со множественным наследованием, тогда разберемся.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
31.10.2021, 13:23
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
почему же тогда AttributeError: 'C' object has no attribute 'y'.
Бред какой-то:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A:
    def __init__(self):
        super(A, self).__init__()
        self.x = 5  # первая переменная
 
class B():
    def __init__(self):
        super(B, self).__init__()
        self.y = 4
        
class C(A, B):
    def __init__(self):
        super(C, self).__init__()
        
    def add(self):
        return self.x + self.y
        
c = C()
print(c.add())  // 9
Вопрос: почему Python автоматически не подставляет вызов конструктора предка?
0
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,247
Записей в блоге: 4
31.10.2021, 15:21  [ТС]
Дико извиняюсь, что вмешиваюсь в разговор

А если вот такая ситуация:
1) в классе А создается переменная;
2) в классе B ей присваивается новое значение;
3) значение передается в класс C

Вот с третьим шагом, что-то у меня не получается

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class A:
    def __init__(self):
        self.b = 0  # 0
 
        
class B(A):
    
    def __init__(self):
        super().__init__()
        print(self.b, 'B __init__(self):') # 0
        
    def BB(self, b):
        self.b = b
        print(self.b, 'BB')  # 7
        
 
class C(B):
    
    def CC(self):
        print(self.b, 'CC')  # 0
 
        
 
b = B()
b.BB(7)
 
t = C()
t.CC()
Пробую делать разными вариантами пока не получается
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.10.2021, 15:28
Лучший ответ Сообщение было отмечено VistaSV30 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class A:
    def __init__(self):
        self.x = 10
 
 
class B(A):
    def __init__(self):
        super().__init__()
 
    def foo(self, val):
        self.x = val
 
 
class C(B):
    def __init__(self):
        super().__init__()
 
 
zz = C()
print(zz.x) # 10
zz.foo(100)
print(zz.x) # 100
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
31.10.2021, 16:36
Arsegg, Где Вы взяли этот прикольный код? Открывается необычный механизм работы инструкции super.
Посмотрел в пошаговом режиме работу этого кода. Оказывается инструкция
Python
1
super(C, self).__init__()
смотрит какой первый суперкласс указан в шапке класса С , и вызывает метод __init__ из этого класса (в данном случае из класса A). Затем смотрит какой в скобках у С(А, В) второй суперкласс и вызывает метод __init__ из этого суперкласса (в данном случае из В).
Получается, что при таком синтаксисе, super вызывает конструкторы из всех суперклассов при множественном наследовании, которые указаны в шапке подкласса . И так как super вызывается в конструкторе, то таким способом наследуются атрибуты из всех конструкторов суперклассов этого класса при множественном наследовании.
Отличный код для множественного наследования. Нужно его сохранить.
Вот только в этом коде лишний super в классе В. И без него все нормально работает. Этот super был бы нужен, только если бы у класса В был свой суперкласс (или несколько суперклассов).
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A:
    def __init__(self):
        super(A, self).__init__()
        self.x = 5  # первая переменная
 
class B():
    def __init__(self):
        #super(B, self).__init__()
        self.y = 4
        
class C(A, B):
    def __init__(self):
        super(C, self).__init__()
        
    def add(self):
        return self.x + self.y
        
c = C()
print(c.add())               # 9
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
31.10.2021, 16:42
Цитата Сообщение от Viktorrus Посмотреть сообщение
Где Вы взяли этот прикольный код?
https://stackoverflow.com/a/16310777.

Не по теме:

P. S. Походу, пора перечитать Лутца))

0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
31.10.2021, 16:42
Arsegg, Вы в интернете нашли этот код? Если есть возможность дайте пожалуйста на него ссылку. Интересно посмотреть, что еще про этот код пишут.
Спасибо!
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.10.2021, 16:46

Не по теме:

Цитата Сообщение от Arsegg Посмотреть сообщение
Походу, пора перечитать Лутца))
Лол. Сегодня проснулся с этой же мыслью


1
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,247
Записей в блоге: 4
31.10.2021, 17:05  [ТС]
У меня опять вопрос

Как из родительского класса передать значение в дочерние?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class A:
    def __init__(self) -> None:
        self.a = 10
        
    def AA(self, a):
        self.a = a  # это значение нужно передать в дочерние классы
 
        
class B(A):
    def __init__(self):
        super().__init__()
            
    def BB(self):
        b = self.a
        print('BB:', b)
        
        
class C(A):
    def __init__(self):
        super().__init__()
            
    def CC(self):
        c = self.a
        print('CC:', c)
 
 
a = A()
a.AA(7)
 
b = B()
b.BB()  
 
c = C()
c.CC()
Извините, что пристаю с вопросами - я учусь
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.10.2021, 17:10
Цитата Сообщение от VistaSV30 Посмотреть сообщение
Как из родительского класса передать значение в дочерние?
Зачем их передавать? Они ж наследуются.
Не понял вопроса
0
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,247
Записей в блоге: 4
31.10.2021, 17:20  [ТС]
В родительском классе вводится значение функцией AA() и затем это значение нужно передать в дочерние классы.
В моем коде наследуется начальное значение 10, а то что вводится функцией не передается (не наследуется)
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
31.10.2021, 17:35
Цитата Сообщение от VistaSV30 Посмотреть сообщение
self.a
Это у Вас атрибут экземпляров класса, но который создается не сразу, как создается экземпляр класса и автоматически запускается метод __init__ создавая атрибуты экземпляров класса. А этот атрибут будет создан только после вызова метода АА. Поэтому наследованием конструктора Вы этот атрибут передать не можете.
Куда Вы хотите передать атрибут "а" класса А, в конструктор подкласса В или в метод ВВ класса В ?
Можно передавать прямым обращением к атрибуту "а" экземпляра класса А, или может быть через super. Но с super я плотно не работал, поэтому нужно пробовать.
Кстати не стоит давать одинаковые названия атрибуту и экземпляру класса, так как можно запутаться.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.10.2021, 17:37
Бррррр.
VistaSV30, ты создал ОДИН экземпляр класса А и у него изменил поле а. Потом ты создал ДРУГОЙ экземпляр - класса Б. Там ничего не менял. Потом ты создал ТРЕТИЙ экземпляр класса С, в котором также ничего не менял.

Добавлено через 58 секунд
VistaSV30, вот так запусти и будет счастье
Python
1
2
3
4
b = B()
b.BB()
b.AA(30)
b.BB()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2021, 17:37

Класс не видит атрибут
Всем привет. Решил сделать микро unit-test для методов по расчету объема фигур. Вопрос: почему тестовый класс не видит атрибут calc(я же в...

Как использовать один атрибут в другом классе?
ошибка в if self.уровень_здоровья < 50: Можно ли как-нибудь использовать тот self.уровень_здоровья из класса person в классе brain? ...

Добавление даты с клавиатуры,как атрибут класса
Требуется ввести 2 даты в формате,например 11.12.1990 В стандартном вводе с клавиатуры datetime такой формат(гггг-мм-дд),с помощью...

Атрибут это (в инете слишком много определений)
Всем прривет:senor: Атрибут — это просто имя переменной, которое прикрепляется к специфическому объекту (вроде модуля). 1)То есть,...

Как наследовать класс и сделать вывод?
На основе класса «Товар», содержащего данные о названии и весе товара, создать класс «Расширенный товар». Класс должен следовать данным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru