我無法重現您的錯誤。
作爲試驗我已經包括類似的方法來既正方形和三角形模塊,分別打印方形或三角形,類似的東西:
def a():
print('square')
我把它稱爲在__init__
形狀類的和收到預期輸出。
class shape:
def __init__(self, shape_id):
if shape_id == '001':
from shapes import triangle as imported_shape
else:
from shapes import square as imported_shape
imported_shape.a()
但是如果你想使用進口模塊別處地方的__init__
- 你應該assing imported_shape
到自我:
class shape:
def __init__(self, shape_id):
if shape_id == '001':
from shapes import triangle as imported_shape
else:
from shapes import square as imported_shape
self.imported_shape = imported_shape
在這之後 - 你可以在其他方法來訪問你的模塊形狀類:
def test(self):
self.imported_shape.a()
阿科錄製您的需要和Python代碼standarts - 這將是更好地導入您的模塊的頂部形狀和__init__
做這樣的事情:
import shapes
class shape:
def __init__(self, shape_id):
if shape_id == '001':
self.imported_shape = shapes.triangle
else:
self.imported_shape = shapes.square
OOP例如:
Asuming是正方形和三角形有same-命名的類:
from shapes.square import square
from shapes.triangle import triangle
class shape(square, triangle):
def __init__(self, shape_id):
if shape_id == '001':
super(triangle, self).__init__()
else:
super(square, self).__init__()
您的項目結構是什麼? –
進口留在任何對象的功能範圍 – PRMoureu
@YaroslavSurzhikov更新項目結構的問題 – MrPyCharm