ansible]# vim adhttp.yml --- - hosts: cache   remote_user: root   tasks:     - copy:         src: /root/httpd.conf         dest:  /etc/httpd/conf/httpd.conf         owner: root         group: root         mode: 0644       tags: config_httpd       not…
定义一个根据存储过程名称和存储过程参数数组,执行对应的存储过程的方法.用SqlParameter[]代替存储过程需要的参数.这样就不用为每一个存储过程写一个方法了 1.首先定义一个ExcuteProcedure()方法,执行存储过程,并返回第一行第一列的结果 public static object ExcuteProcedure(string proName, SqlParameter[] paramt) { using (SqlCommand command = new SqlCommand…
#习题2:定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, #随机的10个字母和数字的组合:字母和数字的范围可以指定 class RandomString(): #随机数选择的范围作为参数,如(1~100)字母 ('A'~'z'),大写字母在前 按ascii值排列先后 def __init__(self,start_num=0,end_num=100,start_alpha='A',end_alpha='z'): import string if not isinstance(s…
前文回顾: <用CIL写程序:你好,沃尔德> <用CIL写程序:写个函数做加法> 前言: 今天是乙未羊年的第一天,小匹夫先在这里给各位看官拜个年了.不知道各位看官是否和匹夫一样,摸键盘的手都已经有点生疏了呢?所以,为了不忘却程序猿的使命,不冷落程序猿最好的伙伴--键盘.匹夫决定来写<用CIL写程序>的最新一篇文章.可是写什么主题呢?之前匹夫也介绍过CIL其实也是面向对象的,所以寻思着大过年的,不如就写一个类,一个用来抽象化小匹夫的类吧,既可以介绍下小匹夫,小匹夫也可以借…
大家可能很熟悉在collections模块中有一个很好用的扩展数据类型-namedtuple. 如果你还不知道这个类型,那么请翻看标准手册. 我利用元类轻松定义一个namedtuple. 先把代码贴上,满足心急的朋友. def myNamedTuple(tuple_name, attrs_str): attrs_set = set(attrs_str.split(' ')) def __init__(self, attrs): #我们将来实例初始化的时候需要调用的方法. for key, val…
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法EDIT Object.defineProperty(obj, prop, descriptor) 参数 obj 需要定义属性的对象. prop 需定义或修改的属性的名字. descriptor 将被定义或修改的属性的描述符. 返回值 返回传入函数的对象,即第一个参数obj 描述EDIT 该方法允许精确添加或修改对象的属性.一般情况下,我们为对象添加属性是通过…
插件的需求 我们写代码,并不是所有的业务或者逻辑代码都要抽出来复用.首先,我们得看一下是否需要将一部分经常重复的代码抽象出来,写到一个单独的文件中为以后再次使用.再看一下我们的业务逻辑是否可以为团队服务. 插件不是随手就写成的,而是根据自己业务逻辑进行抽象.没有放之四海而皆准的插件,只有对插件,之所以叫做插件,那么就是开箱即用,或者我们只要添加一些配置参数就可以达到我们需要的结果.如果都符合了这些情况,我们才去考虑做一个插件. 插件封装的条件 一个可复用的插件需要满足以下条件: 插件自身的作用域…
    Python作为一个动态的脚本语言,其函数在定义时是不需要指出参数的类型,也不需要指出函数是否有返回值.本文将介绍如何使用python的装饰器来定义一个像C++那样的强类型函数.接下去,先介绍python3中关于函数的定义. 0. python3中的函数定义 举个例子来说吧,比如如下的函数定义:   def fun(a:int, b=1, *c, d, e=2, **f) -> str: pass 这里主要是说几点与python2中不同的点. 1)分号后面表示参数的annotation,…
python是动态语言, 无需声明变量即可使用. 传递一个tuple, list或者dict等等方式, 有时候这种方式的使用不是很好. 对于tuple和list来说都是用下标的访问方式(即使用[]), 这种方式显得不够自然, 阅读代码的时候需要知道index对应的变量含义. 其实, 在python中有很多方式可以动态定义一个新变量, 让代码更具可读性. 动态定义一个新变量, 最简单的方式是使用locals()或者globals(), 两个方法的返回值是dict, 可以通过修改dict来增加新变量…
接口是COM中的关键词,在c++中并没有这个概念.接口是一种极度的抽象.接口用在COM组件中有自己的GUID值,因此定义接口时一定要指定它的GUID值. 实际上接口就是struct,即#define interface struct 一.接口的定义步骤: 0.包含头文件:#include "afxtempl.h" 1.定义一个GUID值:static const IID IID_IFunction={guid value} 2.声明一个接口:DECLARE_INTERFACE_(IFu…