[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум Panda3D - по русски » Общий форум » Python » Модули (Изменения значений из другого модуля)
Модули
ninthДата: Вторник, 11.10.2011, 23:50 | Сообщение # 16
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Ща попробую в картинках - наглядно. Слева стандартный подход ООП. Справа - х.з. как это называется. Обзову Basic-style.
Картинка кликабельна. Фон на самом деле прозрачный.
Прикрепления: 5004770.png (96.8 Kb)
 
serg-kkzДата: Среда, 12.10.2011, 12:31 | Сообщение # 17
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Справа: процедурное программирование.



Это взято из книги по яве. Хотелось бы добавить, для игр такой подход убийственный. Зачем городить городушки - ненужные, я так и не понял.


ООП  -  
 
ninthДата: Среда, 12.10.2011, 19:38 | Сообщение # 18
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (serg-kkz)
Справа: процедурное программирование.

Нет. Процедурное оно на то и процедурное, что классы не используются - обходятся процедурами и функциями. Как-то так:



А здесь - х.з. Если бы это была сеть, я бы обозвал её децентрализованной, одноранговой, а как это назвать с точки зрения программировагия - не знаю )
Прикрепления: 2723474.png (32.8 Kb)
 
serg-kkzДата: Среда, 12.10.2011, 20:39 | Сообщение # 19
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Quote (ninth)
А здесь - х.з. Если бы это была сеть, я бы обозвал её децентрализованной, одноранговой, а как это назвать с точки зрения программировагия - не знаю )

Слазил на wikipedia, глянул, походит на: Прототипное программирование. Прочитал, вот так себе я представлял. Совпадает с моим мышлением, хотя может, поспешил с выводом.


ООП  -  
 
serg-kkzДата: Суббота, 19.11.2016, 18:17 | Сообщение # 20
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Вообщем некропост решил я сделать.

В третьем посту я привел пример, где вполне понятно как изменить данные одного класса из другого. Это когда код в одном файле.
Однако понимание испаряется если вынести отдельно по файлам. И связано это стем что я путал, импорт файла с импортом класса или функции.

Импорт файла выглядит
Код
import module1

Импорт модуля(класс или функция)
Код
from module1 import Start1


В этом была вся проблема. Однако мне есть чем дополнить. Вспоминая третий пост, у нас есть код.

Код
class Start1():   
       def __init__(self):   
           self.a = {'s':'eee'}   
  
St1 = Start1()   
           
class Start2():   
       def __init__(self):   
           St1.a['s'] = 'fffffdddd'   
    
St2 = Start2()   
  
print St1.a


Теперь разносим по файлам.

module1.py
Код
class Start1():   
       def __init__(self):
           self.a = {'s':'eee'}
           
St1 = Start1()


module2.py
Код
import module1

class Start2():   
      def __init__(self):
      
        module1.St1.a['s'] = 'fffffdddd'

St2 = Start2()


И последний файл main.py
Код
import module1
import module2

from direct.directbase import DirectStart

print module1.St1.a

base.run()


Соответственно теперь добавилось в строке принта module1, что логично и попрежнему наглядно. И файле module2, добавился импорт module1

И нет ни каких, черезжопных ссылок wink


ООП  -  

Сообщение отредактировал serg-kkz - Суббота, 19.11.2016, 18:23
 
voskudoДата: Понедельник, 25.06.2018, 21:40 | Сообщение # 21
Рядовой
Группа: Пользователи
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline
Интересно, спасибо
 
Форум Panda3D - по русски » Общий форум » Python » Модули (Изменения значений из другого модуля)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: