我想知道这是否可行。
假设有两个文件。
在a.py中:
class A()
在b.py中:
def x():
def y():
我想将函数x()从b.py导入a.py的A类,以便A类有一个方法x。
所以我可以像这样使用
test = A()
test.x()
谢谢!
答案 0 :(得分:2)
如果函数签名不允许将A
的实例作为第一个参数传递,那么你可以做的最好就是使它们成为staticmethod
:
import b
class A:
x = staticmethod(b.x)
y = staticmethod(b.y)
test = A()
test.x()
但是,如果您的函数可以将A
实例作为第一个参数,那么它只会是:
class A:
from b import x,y
test = A()
test.x()
答案 1 :(得分:1)
为什么不试试呢?
<强> a.py 强>
class A():
from b import x, y
a = A()
a.x()
<强> b.py 强>
def x():
print "Hi, I'm x!"
def y():
print "Hi, I'm y!"
Yikes,那不起作用!
Traceback (most recent call last):
File "a.py", line 6, in <module>
a.x()
TypeError: x() takes no arguments (1 given)
但是这很简单,方法可以将类实例传递给它们!我们只需修改 b.py ...
b.py ,已修改
def x(self):
print "Hi, I'm x!"
def y(self):
print "Hi, I'm y!"
执行此操作将打印:
嗨,我是x!
请记住在发布之前尝试 - 通常答案就像&#34;是的,只是这样做!&#34; :)