模块和包,枚举描述获取
分类:long8

图片 1

持续统总括法,本次也没怎么非常的,尚未到那么彻底,也是比较根底的
1、方差-样本
2、协方差(标准差)-样本
3、变异周到
4、相关全面

1.哪些是模块

  三个模块正是八个暗含了python定义和申明的文件,文件名便是模块名字加上.py的后缀

  其实import加载的模块分别为死歌通用处目:

    1.运用pytho编写的代码(.py文件卡塔尔(قطر‎

    2.已被编写翻译为共享库或DLL的C或C++扩张

    3.包好意气风发组模块的包

    4.运用C编写并链接到python解释器的放松权利模块

 public static class EnumExtension
模块和包,枚举描述获取。    {
        public static string GetDescription(this Enum value)
        {
            FieldInfo field = value.GetType().GetField(value.ToString());
            DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;

# 建表 塗聚文 20160907
drop table attendrecord;

create table attendrecord
(
    seq  INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    emp_no varchar(20) null,
    rdate datetime not null,
    rtime time not null,
    rdescription varchar(100),
    rdes_reasnon varchar(100),
    branch varchar(50)
);
#存储过程
# 添加
DELIMITER $$
DROP PROCEDURE  IF EXISTS  `attend`.`proc_Insert_Attendrecord` $$
CREATE PROCEDURE `attend`.`proc_Insert_Attendrecord`
(
 IN param1emp_no VarChar(20),
 IN param1rdate Datetime ,
 IN param1rtime Time,
 IN param1rdescription VarChar(100),
 IN param1rdes_reasnon VarChar(100),
 IN param1branch VarChar(50)
)
BEGIN
INSERT INTO attendrecord
(
 emp_no ,
 rdate ,
 rtime ,
 rdescription ,
 rdes_reasnon ,
 branch
)
 VALUES
(
 param1emp_no ,
 param1rdate ,
 param1rtime ,
 param1rdescription ,
 param1rdes_reasnon ,
 param1branch
); END $$
DELIMITER ;

-- 添加
DELIMITER $$
DROP PROCEDURE  IF EXISTS  proc_Insert_Attendrecord $$
CREATE PROCEDURE proc_Insert_Attendrecord
(
 IN param1emp_no VarChar(20),
 IN param1rdate Datetime ,
 IN param1rtime Time,
 IN param1rdescription VarChar(100),
 IN param1rdes_reasnon VarChar(100),
 IN param1branch VarChar(50)
)
BEGIN
INSERT INTO attendrecord
(
 emp_no ,
 rdate ,
 rtime ,
 rdescription ,
 rdes_reasnon ,
 branch
)
 VALUES
(
 param1emp_no ,
 param1rdate ,
 param1rtime ,
 param1rdescription ,
 param1rdes_reasnon ,
 param1branch
); END $$
DELIMITER ;

#添加
DELIMITER $$
DROP PROCEDURE IF EXISTS proc_Insert_AttendrecordOutput $$
CREATE PROCEDURE proc_Insert_AttendrecordOutput
(
 IN param1emp_no VarChar(20),
 IN param1rdate Datetime,
 IN param1rtime Time,
 IN param1rdescription VarChar(100),
 IN param1rdes_reasnon VarChar(100),
 IN param1branch VarChar(50),
  out param1seq int
)
BEGIN
INSERT INTO attendrecord
(
 emp_no ,
 rdate ,
 rtime ,
 rdescription ,
 rdes_reasnon ,
 branch
)
 VALUES
(
 param1emp_no ,
 param1rdate ,
 param1rtime ,
 param1rdescription ,
 param1rdes_reasnon ,
 param1branch
);
SELECT LAST_INSERT_ID() into param1seq;
END $$
DELIMITER ;

[简介]

依旧是先造个list,这次把这么些职能写个函数,方便现在调用,此外上生机勃勃篇写过的函数此次也会持续
def create_rand_list(min_num,max_num,count_list):
  case_list = []
  while len(case_list) < count_list:
    rand_float = random.uniform(min_num,max_num)
    if rand_float in case_list:
      continue
    case_list.append(rand_float)
  case_list = [round(case,2) for case in case_list]
  return case_list

2.怎么样协调写叁个模块

    创造叁个py文件,给它起一个切合变量命名准绳的名字,那一个名字就是模块名

            return attribute == null ? value.ToString() : attribute.Description;
        }

  

用作一名职业程序化操盘人员,编程是一个程序猿的基础,本文是小编在做的一个证券CTP项目中有关布林线绘图的一片段,偿试类MT4中图表 设计而写,在编写绘图时,查阅了有关资料,以为依然用NPlot的那么些图片控件比较好,特点是:免费,能够用于winform程序,并且速度超级快,能够实时动态彰显图表数据,上面就进去主旨.

下边是历史函数
sum_fun() #累加
len_fun() #总计个数
multiply_fun() #累乘
sum_mean_fun() #算数平平均数量
sum_mean_rate() #算数平平均数量总括回报
median_fun() #中位数
modes_fun() #众数
ext_minus_fun() #极差
geom_mean_fun() #几何平平均数量
geom_mean_rate() #几何平均回报

3.模块的导入

  导入七个模块就是试行一个模块

  模块导入的经过中爆发了怎么着:

    1.找到这么些模块

    2.确定那一个模块是或不是被导入过了

    3.比如没有被导入过:

      成立多少个归属这几个模块的命名空间

      让模块的名字指向那个空间

      实施这些模块中的代码

  给模块起别称:起了外号之后,就只可以接收这几个模块的小名援引变量了

  导入多个模块:

    import os,time

  规范建议:

    模块应该一个多个的导入:

      内置模块

      扩展(第三方)模块

      自定义模块

  from  import  

    模块导入的历程中发生了怎么:

      1.找到要被导入的模块

      2.肯定那些模块是还是不是被导入过

      3.倘诺那些模块没被导入过

        创立七个归于这些模块的命名空间

        试行那几个文件

        找到要导入的变量

        给导入的变量创制二个援用,指向要导入的变量

 1 #测试一:导入的函数read1,执行时仍然回到my_module.py中寻找全局变量money
 2 #demo.py
 3 from my_module import read1
 4 money = 1000
 5 read1()
 6 
 7 #测试二:导入的函数read2,执行时需要调用read1(),仍然回到my_module.py中找read1()
 8 #demp.py
 9 from my_module import read2()
10 def read1():
11     print("1")
12 read2()

万后生可畏当前有重名read1大概read2,那么会有覆盖效果

1 #测试三:导入的函数read1,被当前位置定义的read1覆盖掉了
2 #demo.py
3 from my_module import read1
4 def read1():
5     print("1")
6 read1()
7 执行结果:
8 from the my_module.py
9 1

from my_module import *把my_module中持有的不是以下划线(_卡塔尔国开首的名字都导入到当前地方

from my_module import *
print(money)
print(read1)
print(read2)

执行结果:
from the my_module.py
1000

如果my_module.py中的名字前加_,即_money,则frommy_module import *,_money不能够被导入

模块引用中的情状:模块之间分化意循环援用

        //public static IEnumerable<EnumItem> GetDictionary<TEnum>(this TEnum tEnum)
        //    where TEnum : struct
        //{
        //    return Enum.GetValues(typeof(TEnum)).OfType<Enum>()
        //        .Select(x => new EnumItem
        //        {
        //            Key = Convert.ToInt32(x),
        //            Value = x.ToString(),
        //            Description = x.GetDescription()
        //        });
        //}

/// <summary>
 /// Attendrecord数据访问层
 ///生成時間2016-9-6 17:24:08
 ///塗聚文(Geovin Du) 自建代码生成器生成(简单存储过程也可以生成)
 ///</summary>
 public class AttendrecordDAL : IAttendrecord
 {
  ///<summary>
  /// 追加记录 存储过程
  ///</summary>
  ///<param name="AttendrecordInfo"></param>
  ///<returns></returns>
  public int InsertAttendrecord(AttendrecordInfo attendrecord)
  {
   int ret = 0;
   try
   {
    MySqlParameter[] par = new MySqlParameter[]{
    new MySqlParameter("?param1emp_no",MySqlDbType.VarChar,20),
    new MySqlParameter("?param1rdate",MySqlDbType.Datetime),
    new MySqlParameter("?param1rtime",MySqlDbType.String), //涂聚文注:不能用MySqlDbType.Time否则报错:base {System.Data.Common.DbException} = {"Only TimeSpan objects can be serialized by MySqlTimeSpan"}
    new MySqlParameter("?param1rdescription",MySqlDbType.VarChar,100),
    new MySqlParameter("?param1rdes_reasnon",MySqlDbType.VarChar,100),
    new MySqlParameter("?param1branch",MySqlDbType.VarChar,50),
    };
    par[0].Value = attendrecord.Emp_no;
    par[1].Value = attendrecord.Rdate;
                par[2].Value = attendrecord.Rtime;
    par[3].Value = attendrecord.Rdescription;
    par[4].Value = attendrecord.Rdes_reasnon;
    par[5].Value = attendrecord.Branch;
    ret = DBHelper.ExecuteSql("proc_Insert_Attendrecord", CommandType.StoredProcedure, par);
   }
   catch (MySqlException ex)
   {
    throw ex;
   }
   return ret;
  }
  ///<summary>
        /// 追加记录 SQL脚本
  ///</summary>
  ///<param name="AttendrecordInfo"></param>
  ///<returns></returns>
  public int InsertSqlAttendrecord(AttendrecordInfo attendrecord)
  {
   int ret = 0;
   try
   {
    StringBuilder strSql = new StringBuilder();
    strSql.Append("INSERT INTO attendrecord(emp_no,rdate,rtime,rdescription,rdes_reasnon,branch");
    strSql.Append(") VALUES (");
    strSql.Append("?param1emp_no ,?param1rdate ,?param1rtime ,?param1rdescription ,?param1rdes_reasnon ,?param1branch)");
    MySqlParameter[] par = new MySqlParameter[]{
    new MySqlParameter("?param1emp_no",MySqlDbType.VarChar,20),
    new MySqlParameter("?param1rdate",MySqlDbType.Datetime),
    new MySqlParameter("?param1rtime",MySqlDbType.String),
    new MySqlParameter("?param1rdescription",MySqlDbType.VarChar,100),
    new MySqlParameter("?param1rdes_reasnon",MySqlDbType.VarChar,100),
    new MySqlParameter("?param1branch",MySqlDbType.VarChar,50),
    };
    par[0].Value = attendrecord.Emp_no;
    par[1].Value = attendrecord.Rdate;
    par[2].Value = attendrecord.Rtime;
    par[3].Value = attendrecord.Rdescription;
    par[4].Value = attendrecord.Rdes_reasnon;
    par[5].Value = attendrecord.Branch;
    ret = DBHelper.ExecuteSql(strSql.ToString(), CommandType.Text, par);
   }
   catch (MySqlException ex)
   {
    throw ex;
   }
   return ret;
  }

[内容]

新函数代码

4.模块的加载与纠正

  每种模块只被导入一遍,归入到sys.modules中,假诺改造了模块中的内容,必需重启程序

        public static IEnumerable<EnumItem> GetDictionary(Type tEnum)
        {
            return Enum.GetValues(tEnum).OfType<Enum>()
                .Select(x => new EnumItem
                {
                    Key = Convert.ToInt32(x),
                    Value = x.ToString(),
                    Description = x.GetDescription()
                });
        }
    }

  类似于SQL Server中的:sp_executesql

朝气蓬勃,NPlot控件相关知识简单介绍:

import random

# 先生成一个随机list,已有函数,不赘述
rand_list = [15.79, 6.83, 12.83, 22.32, 17.92, 6.29, 10.19, 10.13, 24.23, 25.56]

# 1、方差-样本S^2,list中的每个元素减整个list的平均数的平方累加,结果比个数-1,方差总量不-1
def var_fun(rand_list):
  mean_num = sum_mean_fun(rand_list) #计算平均数
  len_num = len_fun(rand_list) #计算总量
  var_list = [(x-mean_num)**2 for x in rand_list]
  var_sum = sum_fun(var_list)
  var_num = var_sum/(len_num - 1)
  return var_num

# 2、协方差(标准差)-样本S,这个简单,用方差开平方就可以了
def covar_fun(rand_list):
  var_num = var_fun(rand_list)
  covar_num = var_num ** 0.5
  return covar_num

# 3、变异系数CV,变异程度度量,协方差/算数平均数*100%
# 说明(百度百科):在进行数据统计分析时,如果变异系数大于15%,则要考虑该数据可能不正常,应该剔除
def  trans_coef_fun(rand_list):
  covar_num = covar_fun(rand_list)
  mean_num = sum_mean_fun(rand_list)
  trans_coef_num = covar_num / mean_num
  return trans_coef_num

# 4、相关系数-样本r,表示两个维之间的线性关系,-1 < r < 1,越接近1关系维间的关系越强
#    因为是两个维,因此需要输入两维的list,算法比较麻烦
'''
((x1-mean(x))(y1-mean(y))+(x2-mean(x))(y2-mean(y))+...(xn-mean(x))(yn-mean(y)))
/((x1-mean(x))^2+(x2-mean(x))^2+...(xn-mean(x))^2)^0.5*((y1-mean(y))^2+(y2-mean(y))^2+...(yn-mean(y))^2)^0.5
'''
x_list = rand_list
y_list = [4.39, 13.84, 9.21, 9.91, 15.69, 14.92, 25.77, 23.99, 8.15, 25.07]
def pearson_fun(x_list,y_list):
  x_mean = sum_mean_fun(x_list)
  y_mean = sum_mean_fun(y_list)
  len_num = len_fun(x_list)
  if len_num == len_fun(y_list):
    xy_multiply_list = [(x_list[i]-x_mean)*(y_list[i]-y_mean) for i in range(len_num)]
    xy_multiply_num = sum_fun(xy_multiply_list)
  else:
    print 'input list wrong,another input try'
    return None
  x_covar_son_list = [(x-x_mean)**2 for x in x_list]
  y_covar_son_list = [(y-y_mean)**2 for y in y_list]
  x_covar_son_num = sum_fun(x_covar_son_list)
  y_covar_son_num = sum_fun(y_covar_son_list)
  xy_covar_son_multiply_num = (x_covar_son_num ** 0.5) * (y_covar_son_num ** 0.5)
  pearson_num = xy_multiply_num / xy_covar_son_multiply_num
  return pearson_num

5.把模块当成脚本来使用

  能够由此模块的全局变量__name__来查看模块名:

    当作脚本运转:

      __name__等于'__main__'

    当作模块导入:

      __name = 模块名

  功效:用来调节.py文件在分歧的应用处景下实行不风流倜傥的逻辑

  if __name__ == '__main__':

 1 def fib(n):
 2     a,b = 0,1
 3     while b<n:
 4         print(b,end = '')
 5         a, b = b, a+b
 6     print()
 7 
 8 if __name__ == "__main__":
 9     print(__name__)
10     num = input("num:")
11     fib(int(num))

py文件:直接运营这么些文件,那个文件便是三个剧本

    导入那么些文件,那几个文件便是五个模块

当一个py文件:

  当做三个剧本的时候:能够独立的提供几个效益,能独立达成人机联作

  当成三个模块的时候,能够被导入那调用这么些意义,无法自己作主人机联作

一个文件中的__name__变量:

  当那个文件被视作脚本试行的时候:__name__ == '__main__'

  当那一个文件被作为模块导入的时候:__name__ == '模块的名字'

sql server script:

本文由long8发布于long8,转载请注明出处:模块和包,枚举描述获取

上一篇:隐性调用php程序的不二秘技_php本领_脚本之家, 下一篇:没有了
猜你喜欢
热门排行
精彩图文