为什么这个Python代码执行两次?

时间:2015-12-22 15:22:17

标签: python functional-programming

我对Python非常陌生,并试图通过构建非常愚蠢的程序来学习类,方法,范围等是如何工作的。

我在下面编写的代码假设只定义一个使用Functionsx值实例化的类y,然后可以执行各种简单的数学函数,如add subtract ,乘以或除(是的,我知道有一个Python数学库)。

然而,每当我运行我的代码并进入我想要在我的类中运行数学函数的部分时,它会再次运行整个程序,然后执行数学运算。

我在这里做错了什么?

文件名为 MyMath.py

class Functions():

   def __init__(self, x, y):
       self.x = x
       self.y = y

   def add(self):
      return self.x+self.y

   def subtract(self):
       return self.x-self.y

   def multiply(self):
       return self.x*self.y

   def divide(self):
       return self.x/self.y

def check_input(input):
    if input == int:
        pass
    else:
        while not input.isdigit():
            input = raw_input("\n " + input + " is not a number.  Please try again: ")

    return input

print("Welcome to the customzied Math program!")
x = raw_input("\nTo begin, please enter your first number: ")
x = check_input(x)

y = raw_input("Enter your second number: ")
y = check_input(y)

from MyMath import Functions 

math = Functions(x,y)
print(math.add())

1 个答案:

答案 0 :(得分:8)

删除以下声明。

void Application_Start(object sender, EventArgs e)
{
  // your code that initializes dictionary with data from DB
}

程序的第一行定义名称from MyMath import Functions ,您可以使用它而无需导入它。如果在不同的文件/模块中定义了类(或函数或变量,...),则只使用import命令。

另外注意:从模块导入任何内容时,整个模块作为脚本运行(尽管只有Functions名称被导入到本地名称空间中)。因此,要导入的文件中的所有内容都应包含在类或函数中(除非有充分理由不...)。