Наша компания занялась CSLA в некоторых его проектах, и некоторые проекты прежней версии остаются быть CSLA. Другие проекты переехали от него, потому что CSLA нарушил простое и простое правило ООП: Единственный Принцип Ответственности.
объекты CSLA являются самоподдерживающимися, например, они получают свои собственные данные, они управляют своим собственным поведением, они сохраняют себя. К сожалению, это означало, что Ваш средний объект CSLA имеет по крайней мере три обязанности - представление модели предметной области, содержа бизнес-правила, и содержащий определение доступа к данным (не DAL или реализация доступа к данным, как я ранее заявлял/подразумевал), все одновременно.
Python имеет методы уровня модуля и уровня класса. В этой концепции «модуль» - это особый класс, который вы получаете, используя import
вместо Name ()
. Попробуйте
from Example1.views import adder as otherAdder
получить доступ к методу уровня модуля. Теперь вы можете вызвать otherAdder ()
, и он выполнит код в другом модуле. Обратите внимание, что метод будет выполняться в контексте Example1.views
, т.е. когда он ссылается на объекты, он будет искать там.
Попробуйте:
from Example2.views import adder as myadder
myadder(x,y)
Если вы не уверены, вы всегда можете запустить оболочку python, а затем использовать команду dir , чтобы заглянуть внутрь содержимого пакетов и посмотреть, что можно
Редактировать: Обновлено из комментариев для использования «как»
ИЛИ
# use ...views as myviews if you need to avoid name conflict on views
from Example2 import views
views.adder(x,y)
Обычно вы импортируете «модули»
Я бы посоветовал:
from Example2 import views as views2
x = views2.adder(1, 2)
I надеюсь, я правильно понял, так как до сих пор пакетами не пользовался; -)