zoukankan      html  css  js  c++  java
  • [Python]小甲鱼Python视频第051课(__name__属性、搜索路径和包)课后题及参考解答

    # -*- coding: utf-8 -*-
    """
    Created on Tue Mar 26 23:45:37 2019
    
    @author: fengs
    """
    
    
    """
    测试题(笔试,不能上机哦~)
    """
    
    """
    0. __name__ 属性的含义是什么?
        当前运行的模块名
    
    1. 什么时候 __name__ 属性的值是 "__main__"?
       作为独立程序: __main__
       作为模块被引入:__name__的属性就是模块名
        
    2. 如果获得当前 Python 的搜索路径?
        import sys
        print(sys.path)
    3. 如果你不想将相关的模块文件放在当前文件夹内,那最好的选择是?
        方法1: sys.path.append(相关的模块文件所在路径)
        方法2: 把相关的模块文件放在已有的搜索路径中--->site-packages
        
    4. 如果你见到 import urllib.request 语句,那么这个 urllib 是什么?
        包名
        a.新建一个文件夹,文件夹名称就是包名
        b.在文件夹中创建一个 __init__.py 文件,可以为空
        c.把相关的模块文件放在文件夹中
        
        import 包名.模块名
    5. Python 如何区分一个文件夹是普通文件夹还是包?
        文件夹中是否有 __init__.py文件
        
    """
    print(__name__) # ----->  __main__
    class Test:
        def __init__(self):
            print(__name__)
    test = Test()
    
    
    
    
    
    """
    动动手0.
    0. 执行下边 a.py 或 b.py 任何一个文件,都会报错,请改正程序。
    注:这道题原理跟上一节课的课后作业(测试题 4、5)类似,如果上节课你搞懂了,这道题应该可以想出解决方案,不要轻易看答案,除非你已经抓破头皮…….
    
    # a.py
    import b
    
    def x():
        print('x')
    
    b.y()
    
    # b.py
    import a
    
    def y():
        print('y')
    
    a.x()
    
    执行 b.py 引发下边异常:
    >>> 
    Traceback (most recent call last):
      File "/Users/FishC/Desktop/b.py", line 1, in <module>
        import a
      File "/Users/FishC/Desktop/a.py", line 1, in <module>
        import b
      File "/Users/FishC/Desktop/b.py", line 6, in <module>
        a.x()
    AttributeError: 'module' object has no attribute 'x'
    
    """
    
    
    # a.py
    import b
    def x():
        print('x')
    if __name__ == '__main__':
        b.y()
        
    # b.py
    import a
    def y():
        print('y')
    if __name__ == '__main__':
        a.x()
    

      

    ~不再更新,都不让我写公式,博客园太拉胯了
  • 相关阅读:
    js隐藏嵌入表边框
    把字符串中的小写字母转换成大写字母
    字符串逆序
    嵌入式C语言编程与AVR技巧(一)——C语言环境访问MCU寄存器
    寻找第K大的数的方法总结
    ASCII码(全)
    把字符串中的小写字母转换成大写字母
    纯C 字符串操作函数 实现 (strcpy, strncpy, memcpy, memset, strcat, strlen ... ) .
    ASCII码(全)
    字符串逆序
  • 原文地址:https://www.cnblogs.com/alimy/p/10604854.html
Copyright © 2011-2022 走看看