Вызывающий метод из другого файла Python

Наша компания занялась CSLA в некоторых его проектах, и некоторые проекты прежней версии остаются быть CSLA. Другие проекты переехали от него, потому что CSLA нарушил простое и простое правило ООП: Единственный Принцип Ответственности.

объекты CSLA являются самоподдерживающимися, например, они получают свои собственные данные, они управляют своим собственным поведением, они сохраняют себя. К сожалению, это означало, что Ваш средний объект CSLA имеет по крайней мере три обязанности - представление модели предметной области, содержа бизнес-правила, и содержащий определение доступа к данным (не DAL или реализация доступа к данным, как я ранее заявлял/подразумевал), все одновременно.

5
задан Federer 16 November 2009 в 14:21
поделиться

3 ответа

Python имеет методы уровня модуля и уровня класса. В этой концепции «модуль» - это особый класс, который вы получаете, используя import вместо Name () . Попробуйте

from Example1.views import adder as otherAdder

получить доступ к методу уровня модуля. Теперь вы можете вызвать otherAdder () , и он выполнит код в другом модуле. Обратите внимание, что метод будет выполняться в контексте Example1.views , т.е. когда он ссылается на объекты, он будет искать там.

7
ответ дан 18 December 2019 в 10:46
поделиться

Попробуйте:

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)
6
ответ дан 18 December 2019 в 10:46
поделиться

Обычно вы импортируете «модули»

Я бы посоветовал:

from Example2 import views as views2

x = views2.adder(1, 2)

I надеюсь, я правильно понял, так как до сих пор пакетами не пользовался; -)

3
ответ дан 18 December 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: