2015-03-12 3 views
0

У меня есть две функции a() в a.py и a() в b.py.Как я вызываю функцию a.py a() в b.py. Поскольку обе функции будут иметь одинаковое имя в b.py, я не могу понять, как это сделать.вызов функции с тем же именем и теми же параметрами

+0

'from a a new_a'. Я думаю, вы всегда должны стараться не использовать такое соглашение об именах, которое будет конфликтовать. –

+2

еще лучше - 'import a' и' a.a (....) '. – iced

ответ

4

Вы можете импортировать модуль и получить доступ к его методам, так что нет никаких конфликтов имен:

# b.py 

import a 

a.a() 
+0

Это не пространство имен. – iced

+0

@iced Что это? – khajvah

+0

это модуль. который не совпадает с пространством имен (хотя и очень близко). – iced

1

Первый подход:

import a 
import b 


a.a() 
b.a() 

Другой:

from a import a as a_a 
from b import a as b_a 


a_a() 
b_a() 
0

Советы: В общей точке зрения избегать использования:

from module import * # IS BAD ! 

Это огромный источник недоразумений. Если вы делаете это, чтобы сохранить размер и читаемость кода вас предпочитают:

import module.which.may.be.super.long as M 
M.a() 

вы сохраните бесследовой способность вашего кода, сохраняя Python в качестве явного языка.