m1

模块基础-03循环导入问题

孤者浪人 提交于 2019-11-30 03:40:16
一丶什么是循环导入 # m1.py print('from m1.py') from m2 import x y = 'm1'  1.创建m2的名称空间  2.执行m2.py,将执行产生的名字丢到m2.py  3.在当前执行文件中拿到m2.x # m2.py print('from m2.py') from m1 import y x = 'm2'  1.创建m1的名称空间  2.执行m1.py,将执行产生的名字丢到m1.py  3.在当前执行文件中拿到m1.y # run.py import m1  1.创建m1的名称空间  2.执行m1.py,将执行产生的名字丢到m1.py  在当前执行文件中拿到m1   * 如果运行run.py,则会报错ImportError: cannot import name 'y'   * 如果运行m1.py,则会报错ImportError: cannot import name 'x'   * 如果运行m2.py,则会报错ImportError: cannot import name 'y' 二丶解决方案 我们可以使用函数定义阶段只识别语法的特性解决循环导入的问题,我们也可以从本质上解决循环导入的问题,但是最好的解决方法是不要出现循环导入。 2.1 方案一(推荐方法) 放在函数体中导入 # m1.py print('from m1.py') def

Python数据库小程序

拟墨画扇 提交于 2019-11-29 14:30:52
源代码:# dict1 是 字典 , 用来对应相应元素的下标,我们将文件转成列表,对应的也就是文件的下标,通过下标来找文件元素dict1 = {'sort':0 , 'name':1 ,'age':2 ,'phone':3 ,'job':4 }#将最后需要打印的信息转成列表的形式def p_message(m1): if '*' in m1: m1 = dict1.keys() return m1 m1 = m1.split(',') for i in range(len(m1)): m1[i] =m1[i].strip() return m1#遍历文件信息,将其转化成列表的形式#将函数转化成生成器,好处是不用一次将文件信息全部传入内存,而是用多少传多少def op_file(m2): m2 = m2.strip() with open(m2 ,encoding='utf=8')as f: for line in f: line = line.strip() line = line.split(',') yield line#进行条件筛选def choose(pp1 ,m3): lis = [] m3 = m3.strip() if '>' in m3: c1 ,c2 = m3.split('>') c1 = c1.strip() c2 = c2.strip() g = op

python包的初始与日志模块

一笑奈何 提交于 2019-11-27 21:15:14
什么是包 创建一个aaa的包,自行创建一个__init__py文件 回忆 创建一个tbjx模块发生的三件事: 将该tbjx文件加载到内存. 创建一个以tbjx命名的名称空间. 通过tbjx. 的方式引用tbjx模块的所有的名字. 创建一个包,也会发生三件事: 将该aaa包内 __init__py文件加载到内存. 创建一个以aaa命名的名称空间. 通过aaa. 的方式引用__init__的所有的名字. 包名就是 幕后指使的 init执行 import 方式导入 aaa包与执行文件同级的情况 引用aaa包的__init__中的name import aaa print(aaa.name)#因为执行aaa 其实就是执行__inint__中内容 # 我想要引用 aaa包的m1文件的a变量 # 错误示例1: import aaa # 1. aaa的 __init__ 里面 写import m1 # 2. print(aaa.m1.a) # print(aaa.m1.a) # 报错原因: No module named 'm1' # 分析报错原因: 模块找不到 内存,内置,sys.path三个地方找不到. # m1 不在内存,不在内置,sys.path 会主动加载执行文件(包的使用.py)的当前目录. 而他不在 # 解决方式: import aaa # 1. 在执行文件写入 import

Android NFC M1卡读写&芯片卡读写(CPU卡读写)(RFID读写)

最后都变了- 提交于 2019-11-27 14:14:22
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/sgn5200/article/details/82855478 Android NFC M1卡读写&芯片卡读写(CPU卡读写)(RFID读写) NFC 读写分几种,本文主要讲M1卡扇区读写和芯片卡读写 权限 初始化 1 onCreate( initNFC() ) 2 onResume( ) 3 onPause() 4 NFC设备刷卡时触发 onNewIntent(Intent) 1,标签读写 2,扇区读写 3 CPU卡读写 重头戏 NFC 读写分几种,本文主要讲M1卡扇区读写和芯片卡读写 NFC 标签读写 NFC 扇区读写 NFC 文件读写 权限 <uses-feature android:name="android.hardware.nfc" android:required="true"/> <uses-permission android:name="android.permission.NFC"/> 1 2 3 4 5 <activity android:name=".ReadTextActivity" android:launchMode="singleTop"> <intent-filter> <action

送分小仙女□ 提交于 2019-11-27 13:34:52
包 一、什么是包 包是模块的一种形式,包其实是一个文件夹(必须得含有 __init__ .py这个文件)。 二、为什么要用包 包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来,随着功能越写越多,我们无法将所有功能都放在一个文件夹中,于是我们使用模块去组织功能,随着模块越来越多,我们就需要用文件夹将模块文件组织起来,以此来提高程序的结构性和可维护性。 三、 __init__ .py是干什么的? 不论我们使用哪种方式导入一个包, 只要是第一次导入包或者是包的任何其他部分, 都会先执行 __init__ .py文件.这个文件可以是空的, 但是也可以存放一些初始化的代码.那么我们之前用的from xxx import * 能用在包的调用上吗?可以,我们要在 __init__ .py文件中给出 __all__ 来确定*导入的内容。 比较抽象,我们包里面的文件大概就是这样的,我们需要在m1.py这样的文件中定义一些函数,假如在bbb文件中需要导入m1.py中的某个函数 from ..aaa import f1 ,bbb这个文件是找不到m1.py这个文件的,他只能找到aaa,而aaa必须先要找到 __init__ 只有通过 __init__ 才能找到m1.py里面的函数。 四、相对导入和绝对导入 你可能会很疑惑上面 from ..aaa import f1 中的 .. 是什么意思

微信小程序のwxs语言

你离开我真会死。 提交于 2019-11-27 11:06:47
一、wxs介绍 wxs是微信小程序自身的脚本语言,用来 过滤 和 计算 。wxs可以通过文件可模块标签来定义 文件需要.wxs后缀文件 二、实例 <wxs module="test1"> module.exports = { message:'from test1!' } </wxs> <view>{{test1.message}}</view> wxs中定义变量默认对外不可预见,我们通过 module.exports={} 对外课件。 <wxs module="test1"> module.exports = { message:'from test1!' } </wxs> <view>{{test1.message}}</view> <wxs src="./m1.wxs" module="m1"/> <view>{{m1.message}}</view> <wxs src="./m2.wxs" module="m2"/> <view>{{m2.message}}</view> 可以通过 module.exports = require("./m1.wxs"); 引入其他 三、数据类型 date和regexp不能使用new构造,要使用getdate和getregexp,是否相等可以通过cons判断 四、基础类库 和es5的区别是console只有log方法

模块的循环导入问题

梦想与她 提交于 2019-11-27 10:41:49
一、什么是循环导入 两个模块互相导入,就形成了导入循环,比如下面的这种情况 print(x) from m2 import x y = 20 m1.py print(y) from m1 import y x = 1 m2.py 如果运行m1.py,则会产生`ImportError: cannot import name 'y` 如果运行m2.py,则会产生`ImportError: cannot import name 'x` 所以根本原因是:在导入的时候,m1需要访问m2的变量y,但是y没有初始化完成 所以解决方法有两个: 二、解决方案 y初始化完成后,才让m1.py访问m2.py的变量 方案一 1 print(x) 2 3 def func1(): 4 from m2 import x 5 print(x) 6 7 y =20 m1.py 1 print(y) 2 3 def func1(): 4 from m1 import y 5 print(y) 6 7 x = 1 m2.py 方案一 1 print(x) 2 3 y = 20 4 from m2 import x m1.py 1 print(y) 2 3 x = 1 4 from m1 import y m2.py 来源: https://www.cnblogs.com/yanjiayi098-001/p

循环导入问题

风格不统一 提交于 2019-11-27 10:40:00
循环导入问题 一、什么是循环导入 # m1.py """ @author RansySun @create 2019-08-15-15:45 """ print("m1中正在导入m2") from m2 import y x = 'm1' print("m1中y:", y) 创建m2的名称空间 执行m2.py,将执行产生的名字丢到m2.py 在当前执行文件中拿到m2.x # m2.py """ @author RansySun @create 2019-08-15-15:45 """ print("m2中正在导入m1") from m1 import x y = 'm2' print("打印m2中引用的x:", x) 创建m1的名称空间 执行m1.py,将执行产生的名字丢到m1.py 在当前执行文件中拿到m1.y # run.py import m1 创建m1的名称空间 执行m1.py,将执行产生的名字丢到m1.py 在当前执行文件中拿到m1 m1中正在导入m2 m2中正在导入m1 m1中正在导入m2 Traceback (most recent call last): ImportError: cannot import name 'y' from 'm2' ( 模块循坏导入问题\m2.py) 分析原因: 首先运行run.py—>import m1,开始导入m1并运行其内部代码-

C# 虚方法 复习

孤人 提交于 2019-11-26 12:45:36
什么是 overide 方法, vertual ,abstract的设计意义是什么,话不多说看 实验代码: public class Test2 { public void M1() { Console.WriteLine("Test2.M1"); } public virtual void M2() { Console.WriteLine("Test2.M2"); } } public class Test22:Test2 { public override void M2() { Console.WriteLine("Test22.M2"); } } public class Test23:Test2 { new public void M1() { Console.WriteLine("Test33.M1"); } } [TestMethod] public void m24() { Test2 t22=new Test22(); Test2 t23=new Test23(); t22.M2(); t23.M1(); } 来源: https://www.cnblogs.com/ProjectDD/p/11320623.html