我不明白为什么一段代码能起作用。据我所知,这不应该起作用。下面简单地说明了这个问题:
““主.py““
from x import * #class x is defined
from y import * #class y is defined
xTypeObj = x()
yTypeObj = y()
yTypeObj.func(xTypeObj)
“x.py”
^{pr2}$“y.py”
#NO IMPORT STATEMENT NEEDED?? WHY
class y(object):
def __init__...
...
def func(self, objOfTypeX):
print(objOfTypeX.functionThatReturnsAString())
我的问题是为什么我不需要在“y.py”类型中有一个import语句
from x import functionThatReturnAString()
它如何计算出如何调用此方法?在
Python是一种动态类型语言。与静态类型语言不同,如C++和java调用,直到实际执行时,方法才被绑定,因此为什么不导入该方法是不需要定义的方法。这有几个含义:
注意,这并不是动态类型语言和静态类型语言之间所有区别的详尽列表。在
函数}的方法)。在
yTypeObj.func
从导入类的main.py
调用。因此,对象可以被构造并传递给函数,以及它的所有方法(functionThatReturnAString
是{Python是一种面向对象的编程语言。在这种语言中,值是对象,对象可以有方法。在
functionThatReturnsAString
函数是类上的一个方法,objOfTypeX
是该类的一个实例。一个类的实例携带了它的类的所有方法。在这就是为什么,例如,python中的
list
对象有一个.append()
方法:{cd3>方法不需要调用。您只需要引用一个列表实例。在
从技术上讲,python
list
是一种类型,但这种区别在这里并不重要。总的来说,类型和类是一样的,就本讨论而言。请务必阅读Python Tutorial,它将在后面的章节中解释类(但您可能需要先浏览第一组章节)。在
相关问题 更多 >
编程相关推荐