1.首先是写Python代码:
想递归生成图,使用图的基类以及重复使用字典,其中邻接矩阵是以字典形式存储的,所以记录一下python的字典操作,有几点感触还挺深也重点记录一下。最近敲代码感觉python中就是循环加判断。。。。可能我还是个菜鸟嘻嘻
图的基类图的Python基础实现
Python中字典的操作Python优雅操作字典:
更新字典中键值对dict.update({key:value})
静态条件下获取文件中类名与实例方法(含有继承关系):
def get_nodes():
#获取A的所有子类
sub_class_list = PageObject.__subclasses__()
nodes = []
for i in range(len(sub_class_list)):
#获取子类的类名
class_name = sub_class_list[i].__name__
nodes.append(class_name)
def get_methods(nodes):
methods=[]
for i in range(len(nodes)-1):
print(nodes[i])
#实例化对象
a = eval(nodes[i])
b = eval(nodes[i+1])
#用正则表达式过滤掉dir()中的魔术方法
listA = filter(lambda x: re.match(r'[^_]', x) and callable(getattr(a, x)), dir(a))
listB = filter(lambda x: re.match(r'[^_]', x) and callable(getattr(b, x)), dir(b))
#求两个集合中的差集
ret = set(list(listA)).difference(list(listB))
print(ret)
methods.append(ret)
return methods
2.其次Maven
构建生命周期
<execution>
<id>id.clean</id>
<phase>clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>clean phase</echo>
</tasks>
</configuration>
</execution>
build阶段的生命周期,被用于构建应用,包括23个阶段。
validate 检查工程配置是否正确,完成构建过程的所有必要信息是否能够获取到。
initialize 初始化构建状态,例如设置属性。
generate-sources 生成编译阶段需要包含的任何源码文件。
process-sources 处理源代码,例如,过滤任何值(filter any value)。
generate-resources 生成工程包中需要包含的资源文件。
process-resources 拷贝和处理资源文件到目的目录中,为打包阶段做准备。
compile 编译工程源码。
process-classes 处理编译生成的文件,例如 Java Class 字节码的加强和优化。
generate-test-sources 生成编译阶段需要包含的任何测试源代码。
process-test-sources 处理测试源代码,例如,过滤任何值(filter any values)。
test-compile 编译测试源代码到测试目的目录。
process-test-classes 处理测试代码文件编译后生成的文件。
test 使用适当的单元测试框架(例如JUnit)运行测试。
prepare-package 在真正打包之前,为准备打包执行任何必要的操作。
package 获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文件。
pre-integration-test 在集成测试执行之前,执行所需的操作。例如,设置所需的环境变量。
integration-test 处理和部署必须的工程包到集成测试能够运行的环境中。
post-integration-test 在集成测试被执行后执行必要的操作。例如,清理环境。
verify 运行检查操作来验证工程包是有效的,并满足质量要求。
install 安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖。
deploy 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程。
POM中的三要素:
查看 Super POM 默认配置的一个简单方法是执行以下命令:mvn help:effective-pom
确定工程组(groupId),及其名称(artifactId)和版本,在仓库中这些属性是工程的唯一标识。
maven中外部依赖的添加:
<dependency>
<groupId>ldapjdk</groupId>
<artifactId>ldapjdk</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
</dependency>