python模块之模块用于定义

模块是程序:

  任何python程序都可以作为模块导入;

  通过python IDLE执行保存在文件夹中的文件:

  编辑一个python文件hello.py,保存在文件夹D:\program files (x86)\python3.5下,然后进行下面操作:

   

  这里是告诉编译器,除了从默认的目录中查找外,还要从D:\program files (x86)\python3.5中查找模块;

  生成的.pyc文件是(平台无关的)经过处理(编译)的,已经转换成python能够更加处理的文件,如果再导入相同的模块,导入的是.pyc文件,而不是.py文件;

  如果再次导入,就什么也不会发生了:

   

  这些内容只需要定义一次,所以导入多次效果与导入一次是相同的。

  如果希望重新导入生效,python2中还有另外一种方法:hello = reload(hello),python3已经去掉了该方法。

模块用于定义:

  在模块中定义函数(主要用于代码重用):

  #hello.py 

     def hello():

        print ('hello nannan!!')

  执行:

   

模块被用来定义函数,类和其他一些内容,但是,有时候在模块中需要添加一些检查模块本身是否能正常工作的测试代码。

#hello.py

   def hello():

      print ('hello nannan!!')

#A test

  hello()

如果将其作为模块导入,会出现下面的情况:

   

导入时执行了一遍方法,然后调用时又执行了一遍方法。

可以使用下面的方式解决上面的问题:

   #hello.py

  def hello():

      print ('hello nannan!!')

  def test():

      hello()

  if __name__ == '__main__':test()

然后进行执行:

   


所以得出:

避免导入时执行内容,需要使用变量__name__;

__name__变量的默认值为'__main__';

而在导入模块时,这个值被赋值为模块名,所以在文件中加入代码:if __name__ == '__main__':test(),在非导入模块时,会执行test()方法,将模块进行导入时,name被赋值为模块名,test()方法测试代码将不被执行。


   

  



   


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python ,你可以使用模块来组织和封装面向对象的代码。一个模块是一个包含了函数、变量和类的文件,它可以被其他 Python 程序导入和使用。 下面是一个简单的示例,演示如何在 Python 定义一个面向对象的模块: ```python # 定义一个名为 "shapes" 的模块 class Circle: def __init__(self, radius): self.radius = radius def area(self): return 3.14 * self.radius ** 2 class Rectangle: def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height # 在模块的最后,可以添加一些测试代码 if __name__ == "__main__": circle = Circle(5) print("圆的面积:", circle.area()) rectangle = Rectangle(4, 6) print("矩形的面积:", rectangle.area()) ``` 在这个例子,我们定义了一个名为 "shapes" 的模块。它包含了两个类:`Circle` 和 `Rectangle`。每个类都有自己的构造函数 `__init__` 和方法 `area`,用于计算图形的面积。 在模块的最后,我们可以添加一些测试代码,这些代码只会在直接运行该模块时才执行。通过使用 `if __name__ == "__main__":` 来判断当前模块是否是主程序,如果是,则执行测试代码。 要在另一个 Python 程序使用这个模块,可以使用 `import` 语句导入它: ```python import shapes circle = shapes.Circle(5) print("圆的面积:", circle.area()) rectangle = shapes.Rectangle(4, 6) print("矩形的面积:", rectangle.area()) ``` 在另一个程序导入模块后,就可以使用模块定义的类了。通过 `模块名.类名` 的方式来访问和使用类的方法和属性。 这样,你就可以使用模块来组织和复用你的面向对象代码了。模块还可以帮助你更好地管理和维护代码,提高代码的可读性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值