精华内容
下载资源
问答
  • 主要介绍了JS使用eval()动态创建变量的方法,详细分析了eval函数的功能及使用eval函数实现动态创建变量的步骤与相关注意事项,需要的朋友可以参考下
  • 在Python中采用列表动态创建变量名并调用动态创建变量名并调用问题描述创建类调用类并动态创建变量名调用变量名并输出结果测试输出结果 转载请注明出处哦 动态创建变量名并调用 在写代码过程中,也许你会碰见这样的...


    转载请注明出处哦

    动态创建变量名并调用

    在写代码过程中,也许你会碰见这样的情况:需要多次创建一种类或者模型,如果采用手动输入,设置不同的变量名(如val_1,val_2,val_3……),这个过程将会烦不胜烦,因此,动态创建变量名将会减少大量重复的工作,减轻你的负担。此处以为例,展示如何通过列表的形式创建大量的变量名并调用。

    问题描述

    实现一个基数排序算法,用于10进制的正整数从小到大的排序。

    思路是保持10个队列(队列0、队列1…队列9、队列main),开始,所有的数都在main队列,没有排序。

    第一趟将所有的数根据其10进制个位(09),放入相应的队列09,全放好后,按照FIFO的顺序,将每个队列的数合并排到main队列。

    第二趟再从main队列队首取数,根据其十位的数值,放入相应队列0~9,全放好后,仍然按照FIFO的顺序,将每个队列的数合并排到main队列。

    第三趟放百位,再合并;第四趟放千位,再合并。

    直到最多的位数放完,合并完,这样main队列里就是排好序的数列了。

    创建类

    首先,此处创建一个Queue(队列)类,类中包含了isEmpty,enqueue,dequeue,size四种方法。isEmpty判断Queue是否为空,enqueue在列表中左侧插入一个值,dequeue在删除列表右侧的值并返回,size返回长度。具体如下:

    class Queue:
        def __init__(self):
            self.items = []
    
        def isEmpty(self):
            return self.items == []
    
        def enqueue(self, item):
            self.items.insert(0, item)
    
        def dequeue(self):
            return self.items.pop()
    
        def size(self):
            return len(self.items)
    

    调用类并动态创建变量名

    这里a为我们动态创建的变量名,每一个都是指向一个类。

    mylist = eval(input("Please enter a list(must be a list of number):\n"))
    a = [0] * 10  #此处创建一个长度为10的列表
    n = len(str(max(mylist)))
    
    creat_class = locals()
    for ii in range(10): #此处开始动态创建变量名
        creat_class['queue_' + str(ii)] = Queue()
        a[ii] = creat_class['queue_' + str(ii)]
    mainqueue = Queue()
    

    调用变量名并输出结果

    通过以上创建的变量,可以通过对变量进行调用类中的isEmpty,enqueue,dequeue,size四种方法。

    for ii in range(len(mylist)):
        mainqueue.enqueue(mylist[ii])
    
    for i0 in range(n):
    
        while mainqueue.isEmpty() is False:
            main_element = mainqueue.dequeue()
            temp = int(main_element/(10**i0) % 10)
            for k0 in range(10):
                if temp is k0:
                    a[k0].enqueue(main_element) # 通过变量调用enqueue方法。
    
        for j1 in range(10):
            while a[j1].isEmpty() is False: # 通过变量调用isEmpty方法。
                other_element = a[j1].dequeue() # 通过变量调用dequeue方法。
                mainqueue.enqueue(other_element)
    
    output = []
    while mainqueue.isEmpty() is False:
        main_element2 = mainqueue.dequeue()
        output.append(main_element2)
    
    print(output)
    

    测试

    我们输入一个乱序的数字列表,得到重新排序的列表,下面为输入的乱序列表:

    [19,97,8,15,96,9,21,0]
    

    输出结果

    代码得到的输出结果如下:

    [0, 8, 9, 15, 19, 21, 96, 97]
    

    Perfect,怎么样,是不是很方便呢?

    如有不足,请多多指教。

    展开全文
  • ABAP 动态创建变量,构造,表

    千次阅读 2019-03-04 11:27:12
    动态创建变量 创建不同的基本类型,引用不同的get_*(),具体查看类cl_abap_elemdescr, DATA: dref_i TYPE REF TO data, elem_type TYPE REF TO cl_abap_elemdescr. "创建基本类型 elem_type ?= cl_abap_...

    1.

    A.动态创建变量

    创建不同的基本类型,引用不同的get_*(),具体查看类cl_abap_elemdescr,

    DATA:
      dref_i TYPE REF TO data,
      elem_type TYPE REF TO cl_abap_elemdescr.
    
    "创建基本类型
    elem_type ?= cl_abap_elemdescr=>get_i( ).
    
    创建变量对象
    CREATE DATA dref_i TYPE HANDLE elem_type .
    
    *引用动态创建的变量
    FIELD-SYMBOLS <FS_CHAR> TYPE ANY.
    IF dref_i IS BOUND.
      ASSIGN dref_i->* TO <FS_CHAR>.
    ENDIF.

    B,根据创建的基本类型,创建结构

    DATA:
    dref_str TYPE REF TO data, 
    struct_type TYPE REF TO cl_abap_structdescr, 
    comp_tab TYPE cl_abap_structdescr=>component_table WITH HEADER LINE.
    
    *动态创建结构类型
    "结构类型(根据名称获取系统创建好的结构)
    struct_type ?= cl_abap_typedescr=>describe_by_name( 'SFLIGHT' ).
    
    "根据程序中定义的结构,创建结构类型
    "struct_type ?= cl_abap_typedescr=>describe_by_data( 'SFLIGHT' ).
    
    获取该结构类型中,结构组件(字段)
    comp_tab[] = struct_type->get_components( )."组成结构体的各个字段组件
    
    "扩展结构字段
    elem_type ?= cl_abap_elemdescr=>get_C( 10 ).
    comp_tab-type = elem_type."新增成员的类型对象
    INSERT comp_tab INTO comp_tab INDEX 1.
    
    "根据新的组件创建结构类型
    struct_type = cl_abap_structdescr=>create( comp_tab[] ).
    "根据结构类型,创建结构对象
    CREATE DATA dref_str TYPE HANDLE struct_type.
    
    *引用创建的动态构造
    FIELD-SYMBOLS: <is_str> TYPE ANY.
    IF dref_str IS BOUND.
      ASSIGN  dref_str->* TO <is_str>.
    ENDIF.

    C.根据创建的结构类型创建表

    DATA:
      dref_tab TYPE REF TO data,
      table_type TYPE REF TO cl_abap_tabledescr.
    
    * 基于结构类型对象创建内表类型对象
    itab_type = cl_abap_tabledescr=>create( struct_type ).
    
    "使用内表类型对象来创建内表类型
    CREATE DATA dref_tab TYPE HANDLE itab_type.
    
    *引用构建的表
    FIELD-SYMBOLS :<fs_itab> TYPE ANY TABLE.
    IF dref_tab IS BOUND.
      ASSIGN dref_tab->* TO <fs_itab>.
    ENDIF.
    
    **给现有的内表动态的加一列
    "获取当前内表的表结构对象
    table_type ?= cl_abap_tabledescr=>describe_by_data( <FS_ITAB> ).
    "获取当前表的结构
    struct_type ?= table_type->get_table_line_type( ).
    "获取结构组成字段
    comp_tab[] = struct_type->get_components( ).
    "追加字段
    comp_tab-name = 'FIDESC'.
    comp_tab-type = cl_abap_elemdescr=>get_c( 120 ).
    INSERT comp_tab INTO comp_tab INDEX 2.
    "重新创建结构
    struct_type = cl_abap_structdescr=>create( comp_tab[] ).
    "重新创建表结构
    itab_type = cl_abap_tabledescr=>create( struct_type ).
    "创建表对象
    CREATE DATA dref_tab TYPE HANDLE itab_type.

    D.根据系统字典表,动态创建表的另一方法

    参照系统表创建内表
    DATA:go_tab TYPE REF TO data.
    
    FIELD-SYMBOLS:<fs_tab> TYPE table.
    
    *  动态构建表
    CREATE DATA go_tab TYPE TABLE OF ('EKKO').
    IF go_tab IS BOUND.
      ASSIGN go_tab->* TO <fs_tab>.
      CHECK <fs_tab> IS ASSIGNED.
    ELSE.
      EXIT.
    ENDIF.
      
    参照系统字段创建内表
      DATA:
        gw_fcat TYPE LVC_S_FCAT,
        gT_fcat TYPE STANDARD TABLE OF LVC_S_FCAT.
    
      gw_fcat-fieldname = 'ZFIELD'.
      gw_fcat-REF_TABLE = 'MARA'.
      gw_fcat-REF_FIELD = 'MATNR'.
      APPEND GW_FCAT TO GT_FCAT.
    
      CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
        EXPORTING
    *      I_STYLE_TABLE             =
          IT_FIELDCATALOG           =  GT_FCAT
    *      I_LENGTH_IN_BYTE          =
        IMPORTING
          EP_TABLE                  = go_tab
    *      E_STYLE_FNAME             =
        EXCEPTIONS
          GENERATE_SUBPOOL_DIR_FULL = 1
          others                    = 2
              .
    
      IF go_tab IS BOUND.
        ASSIGN go_tab->* TO <fs_tab>.
        CHECK <fs_tab> IS ASSIGNED.
      ELSE.
        EXIT.
      ENDIF.

     

    展开全文
  • python动态创建变量

    千次阅读 2018-02-09 10:45:13
    这个创建简单的很呐,如果想要创建全局变量只要不放在任意函数内部就可以,这里好在字典可以动态生成,变量可以动态生成两个加起来应用场景就多了。dict_t = {"a":"11111111111111111","b&...

    很简单 只是不常用担心忘记所以记录,技术含量低勿怪!!!

    这个创建简单的很呐,如果想要创建全局变量只要不放在任意函数内部就可以,这里好在字典可以动态生成,变量可以动态生成两个加起来应用场景就多了。

    dict_t = {"a":"11111111111111111","b":"222222222222222222222"};

    createVar = locals()
    for key,values in dict_t.items():
        createVar[key] = values
    print a;
    print b;
    展开全文
  • C++动态创建变量

    千次阅读 2020-05-29 12:23:44
    用宏定义创建变量名来创建类的新对象。 #define NewVariable( x ) robot##x//宏定义 //对象创建,类名为Robot,变量名为robot1,构造函数参数为start和goal Robot NewVariable(1)(start,goal); ##符号会连接两个...

    用宏定义创建的变量名来创建类的新对象。

    #define NewVariable( x ) robot##x//宏定义
    //对象创建,类名为Robot,变量名为robot1,构造函数参数为start和goal
    Robot NewVariable(1)(start,goal);
    

    ##符号会连接两个符号,从而产生新的符号(词法层次),例如:

       #define SIGN( x ) INT_##x
       int SIGN( 1 ); 宏被展开后将成为:int INT_1; 
    

    (本人用的第一种成功)(第二种创建int型变量名作为参考)

    展开全文
  • 动态创建变量

    千次阅读 2010-10-11 13:02:00
      问题:  你想要动态创建一个变量名.例如,你想要使用与数据库查询得到的字段称一致的变量名. 方案: 使用PHP中"可变变量"的语法,即在一个其值为你想作为变量名称的变量前面加一个$....
  • PHP中动态创建变量名(可变变量)

    千次阅读 2013-01-14 11:33:40
    PHP中,我们可以动态创建一个变量名。例如,你想要使用与数据库查询得到的字段名称一致的变量名。 使用PHP中“可变变量”的语法,即在一个其值为你想作为变量名称的变量前面加一个$: $animal = 'turtles'; ...
  • self.varList[number].clicked.connect(lambda: self.MapButton_clicked(self.sender().text()))#########连接槽函数并把自身变量名传递过去 self.varList[number].move(10,(number+1)*50) number += 1 def ...
  • 看来以后的开发要尝试动态语言了。 折中的办法如下: [code="java"] /** * * @author Administrator */ public class Test { private String answer1 = "1"; private String ...
  • python动态创建对象变量

    千次阅读 2016-04-01 19:02:02
    写邮件系统,需要动态创建对象变量 第一念头是 动态创建变量名称, 遂找,好像python真可以这么干 马上又想到 可以动态添加到list 。。。。 留记号,有空研究动态创建变量名称
  • 主要介绍了php使用变量动态创建类的对象,涉及php面向对象程序设计中对象的动态创建相关操作技巧,需要的朋友可以参考下
  • 这里写自定义目录标题本次链接全集初衷...【转载】 Python动态生成变量1 Python动态变量名定义与调用2 Python3 exec 函数3 Python format 格式化函数4 Python进阶-自定义类基础5 python 深入理解 赋值、引用、拷贝、...
  • 必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫: arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字,太累了...
  • python 动动态态生生成成变变量量名名以以及及动动态态获获取取变变量量的的变变量...前前言言 需求 必须现在需要动态创建16个list每个list的名字不一样但是是有规律可循比如第一个list的名字叫 arriage_list_0=[]第二
  • js动态创建类和类变量

    千次阅读 2011-03-09 11:57:00
    js动态创建类和类变量:每个对象类的变量都是动态生成“变量名”和“变量值”的。
  • python创建动态变量并赋值

    千次阅读 2020-12-10 17:59:43
    创建动态变量: for i in range(0, 3): m = f'name{i}' print(m) 输出结果: name0 name1 name2 创建动态变量,并给动态变量赋值: 创建动态变量name0,name1,name2,并给3个变量分别赋值(按照数组位置...
  • python 动态生成变量名以及动态获取变量变量

    万次阅读 多人点赞 2018-07-05 16:19:04
    必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫: arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字,太累了...
  • C#如何动态的创建带参数的构造函数的类,将类作为变量动态创建 本文章,Jemi会教大家如何动态的创建并使用一个类。 1)申明两个类 2)使用Type 和Activator.CreateInstance(type, parameters)动态创建带构造函数的...
  • ms sql根据表明变量动态创建

    千次阅读 2016-02-24 11:36:51
    有些时候需要根据变量批量创建表,下面是个ms sql根据表明变量动态创建表存储过程实例,在MSSQL2008下调试通过。 USE [UNICOM_MAIL_ACCOUNT] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============...
  • js如何动态生成变量、函数并使用

    千次阅读 2020-09-29 15:57:41
    然后实现了动态创建变量和函数这么个操作,想了想还是分享出来,有需要的盆友还可以参考下。 目的: let a = 'x' // 根据变量a,动态声明一个名为x的变量 let x 首先把坑列出来吧: 1.利用window创建全局...
  • vue动态给data中添加变量

    万次阅读 2019-03-25 14:54:14
    我的业务是动态给v-model赋值 但是你得更改所以做不到一对一这时候你就得动态创建变量 首先你得知道你的数据结构是什么样的,然后你根据你数据的结构用数组动态创建变量 然后用你创建的空数组一一对应v-model赋值 ...
  • 动态创建控件(EDIT)添加关联变量

    千次阅读 2015-05-14 20:05:04
    我们知道如果在资源视图中添加了某个控件之后,如果想把它关联一个变量的话,可以使用类向导中来添加关联变量,但是动态创建的按钮如何让其关联变量呢? 1、在CMyDlg.cpp前面定义变量: int num1; //定义 动
  • MYSQL动态给VIEW变量创建动态VIEW

    千次阅读 2017-12-06 17:49:27
    实现思路:mysql创建view时不允许绑定用户变量,我们可以通过一个函数来返回用户变量,达到我们想要效果(通过用户变量创建动态view) 1、创建test_sp,在sp中给@company用户变量赋值 2、创建函数test_f,函数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 672,215
精华内容 268,886
关键字:

动态创建变量