day24-2018-11-19-模块语法

day24-2018-11-19-模块语法

#  1. 可以把代码进行分类.
#  2. 可以实现代码的重用.

# import random  #  一次性把模块所有内容导入
# from random import randint # 把模块加载。 导入randint
#
#
# random.randint()
# randint()
import random # 当你不确定你要用到什么
from random import randint  # 当你确定你要用到的东西

from urllib.request import urlopen
urlopen()


from collections import Iterable, Iterator
from abc import ABCMeta, abstractmethod
print(globals())
print(randint(1,10))

def chi():
    a = 10
main_person_man = "郭靖"
main_person_woman = "黄蓉"
__all__ = ["main_person_man", "bad_person_one"]

print("片头曲....啦啦啦啦啦啦啦啦啦啦啦......")

main_person_man = "张无忌"
main_person_woman = "赵敏"

bad_person_four = "宋青书"
bad_person_one = "陈友谅"
bad_person_two = "灭绝师太"
bad_person_three = "周芷若"

def fight_on_light_top():
    # global main_person_man #  global  py文件
    # main_person_man = "五十开"
    print("围攻光明顶%s粉碎了%s的重大阴谋" % (main_person_man, bad_person_two))

def fight_in_shaolin():
    print("屠狮大会%s又粉碎了%s的阴谋" % (main_person_man, bad_person_three))

print("片尾曲.....哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。。。。。")
print(__name__)

class Car:
    def run(self):
        print("我的车会跑 ")
# # # 查找模块的路径
# # import sys, os, re
# #
# # import flask, django
# #
# # import yitian
# #
# #
# # # print(sys.path)
# #
# #
# # # 导入模块的时候会有三个动作
# # # 1. 先去sys.modules中查看当前导入的模块是否已经被导入.
# # #   如果该模块已经导入。 则不会重复导入
# # # 2. 开辟一个段内存空间。 在该空间中执行模块中的代码
# # # 3. 给该空间一个名称。 把该名称引入到当前模块中
# # import yitian
# # import yitian
# # import yitian
# # import yitian
# # from yitian import fight_in_shaolin
# #
# # # main_person_man = "张翠山"
# # # yitian.main_person_man = "张翠山"
# # #
# # # yitian.fight_on_light_top()
# #
# # # print("金庸.......")
# # # print(yitian.main_person_man) # 使用模块名可以直接访问模块中的内容
# # # print(yitian.main_person_woman)
# #
# # # 每个模块都有自己的global
# # import re
# # # def chi():
# # #     global main_person_man
# # #     main_person_man = "胡辣汤"
# # #
# # # chi()
# # # print(main_person_man)
# # #
# # # yitian.fight_on_light_top()
# # # print(main_person_man)
# #
# # def biwuzhaoqin():
# #     print("%s 攻击%s, 获得了%s的青睐" % (yitian.main_person_man, yitian.bad_person_four, yitian.bad_person_three))
# #
# # # __name__可以屏蔽掉一些测试代码
# # # __name__ 如果该模块是启动模块, 值是__main__
# # #          如果该模块是被导入的。 值是模块名
# # # print(__name__)
# #
# #
# #
# # if __name__ == '__main__': # 程序的入口
# #     print("你吃了么")
# #     biwuzhaoqin()
# #     print("吃饱了挨揍")
#
#
# # from yitian import main_person_man, fight_on_light_top
# #
# # main_person_man = "灭绝"
# # print(main_person_man)
# # fight_on_light_top() # ? 张无忌, 灭绝
#
# import yitian
# yitian.main_person_man = "灭绝" # 一般不要这么干
#
# import random
# random.randint = lambda :10086
#
# print(random.randint())
# import sys
# print(sys.path)
#
# import yitian
# import shediao
# print(yitian.main_person_woman)
# from yitian import  main_person_man, main_person_woman# 在导入的时候如果对方写了__all__
# print(main_person_man)
# print(main_person_woman)
# print(globals())
#
# from shediao import main_person_man, main_person_woman
# print(main_person_man)
# print(main_person_woman)
# print(globals())
#
# print(main_person_man)
# print(main_person_woman)

import yitian
a = 500
print(globals()) # 查看全局名称空间中的名字, 函数第二天
print(locals())
# a = 20
# def func():
#     nonlocal
#     global a   # 把全局引入到局部
#     a = 10
# func()
# print(a)


# yitian.main_person_man = "123"
# import yitian as yt
# # 导入模块可以给出一个别名,  原来的名字就用不了了
# import 金庸 as jy
# import yitian, 金庸 as jy, time, json, pickle, re
# print(globals())
#
# # def miejuedazhanzhangwuji():
# #     jy.biwuzhaoqin()
# #     print("%s 攻击%s, 为了%s" % (yitian.bad_person_two, yitian.main_person_man, yitian.bad_person_three))
# #
# # if __name__ == '__main__':
# #     miejuedazhanzhangwuji()

#
# import yitian
# import 金庸
#
# yitian.fight_on_light_top()

import yitian
c = yitian.Car()
c.run()