• SCRD
    2018-06-16
    没有讲包吗?

    作者回复: 包的概念涉及了文件系统和目录结构,为了照顾更多的初学者,减轻对模块的认知负担,这里的讲解我弱化了包的概念;
    包是使用“.模块”的模块命名空间,例如视频里面讲解的os.path,sys.path这种方式,os和sys就是包,这两个path就是模块;使用包和模块可以有两种方式, 即 import 包.模块 、 from 包 import 模块,从上面两个同名的path不难发现,如果程序需要使用这两个模块,而且能够区分他们的话,就要使用import方式,包的作用就体现在引用和运行时能够对他们的一个区分。
    还有一种特殊情况就是包里还有一个包,即子包:包在文件系统上面是一个目录形式,有时候有需求要在目录下再编写目录—子包,这种情况下就要用到 from 包 import 子包 的形式,引用子包里面的模块(以.py结尾的文件)就要使用 子包.模块的形式来使用这些模块了。
    在早期的Python2中包还有一个文件要学习,这个文件叫做__init__.py,用于包中的子包和模块的搜索功能,在Python3中这个文件也可以省略了。
    希望这些包的相关知识能够扩展你对模块的理解。更多请参考官方文档:
    https://docs.python.org/3/tutorial/modules.html#packages

    
     5
  • 志行者
    2019-08-18
    老师我遇到问题,网上查了一下,说要指定路径什么的,没弄明白为啥报错?请指点一下,多谢。

    mymod.py 内容:
    def printme():
          print("me")

    mod-test .py 内容:
    from mymod import printme
    printme()

    打印结果有error:
    F:\python\python-3.7.4-embed-amd64\python.exe F:/python-code/mod-test.py
    Traceback (most recent call last):
      File "F:/python-code/mod-test.py", line 1, in <module>
        from mymod import printme
    ModuleNotFoundError: No module named 'mymod'

    Process finished with exit code 1
    展开

    作者回复: python的模块有一个搜索路径,通过下面的方法可以查看
    import sys
    print(sys.path)

    如果你的mymod.py 没有在下面的路径里面就找不到mymod这个模块了

     1
    
  • NO.9
    2019-08-06
    为什么我在Pycharm不能import
    module33.py
    def func1(a,b):
        print(a + b)
    print("finish")

    33lecture.py
    import module33
    module33.func1(1,2)
    result--------------
    import 33module1
                ^
    SyntaxError: invalid syntax
    展开

    作者回复: import 33module1
                ^
    SyntaxError: invalid syntax

    按照报错信息应该是书写错误

     1
    
  • GLADIATOR
    2019-04-28
    老师,我在同一个目录下创建两个文件,发现根本无法import,
    root@danji Study]# cat modetest.py
    import modmy
    print_me()
    [root@danji Study]# cat modmy.py
    def print_me():
        print('me')

    [root@danji Study]# python modetest.py
    Traceback (most recent call last):
     File "modetest.py", line 2, in <module>
        print_me()
    NameError: name 'print_me' is not defined
     
    展开

    作者回复: 一、 要使用modmy.print_me() 来调用啊
    二、另一种方法是:
    from modmy import print_me
    print_me()

    
    
  • 彬(^_^)
    2019-03-05
    老师,有个疑惑,装饰器可以引用另一个文件的方法吗



    @装饰器 #这个装饰器怎么从别的文件中引入
    def 方法()
    展开

    作者回复: 当然可以了,那问题就转化为怎么把别的文件引入当前的脚本文件,可以使用import 来实现的

    
    
我们在线,来聊聊吧