在搞多线程时,想要批量给线程命名。在网上搜了半天。用exec、eval无果后。
createVar = locals()
myVarList = []
for i in range(9):
createVar['thread'+ str(i)] = i
myVarList.append(createVar['thread'+ str(i)])
print(thread1)
print(thread2)
print(thread3)
print(thread4)
1
2
3
4
解析
locals是python内置函数,是用来储存当前局部变量的字典。
Python的数据类型有哪些呢?我们学过C++语言,其中的数据类型分的很细致,整数有整型,整型又分为int,short int,long int型等,小数有float,double等,很是细致复杂的。这是由于C++的静态语言型导致的。Python是动态解释型语言,不需要为变量定义数据类型,Python解释器会自动根据变量的值的类型判断,这大大地简化了我们编程时对数据类型的考虑。那现在再来...
如果要写一个程序,让x1为1,x2为2,然后直到x100为100,你会怎么做?
在C这种静态语言里,变量名这个标识符实际上会被编译器直接翻译成内存地址,所以除了手动设置每个变量的值以外,没办法做到这点。而Python这种动态语言则是可以做到的。
最容易想到的自然是eval,但是实际上根本不需要这种危险的东西,因为Python的变量名就是一个字典的key而已。要获取这个字典,直接用locals和globals函数即可。
因此这个程序可以这样实现:
代码如下:
>>> names = locals()
>>> for i in xrange(1, 101):
... names['x%s' %
有时候我们命名了一个全局变量或者局部变量,但在后来的使用中发现这个命名不合适,但是我们使用了很多次这个变量,我们就需要批量把用到的这个变量换一个新的名字
1.提示用户输入名片的详细信息
name=input("请输入姓名:")
phone_str=input("请输入电话:")
qq_int=input("请输入QQ:")
email_int=input...
前言需求:必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字,太累了,而且增加了代码的冗余性,灵活性也不强,所以有没有一种方法是能动态创建list名称的呢?答案是有的!而与之对应,既然要对上面的列表动态操作,...
前言Quora 问答社区的一个开发者投票统计,程序员最大的难题是:如何命名(例如:给变量,类,函数等等),光是如何命名一项的选票几乎是其它八项的投票结果的总和。如何给变量命名,如何让它变得有意义成了程序员不可逾越的难题,这篇文章参考了 Clean Code ,提供7条命名建议,希望能在取名字的过程中给你带来一些帮助。以下都是基于Python3.7语法1、使用有意义而且可读的变量名差ymdstr =...
这几天写代码中遇到的一个常见问题,在Python中如何批量的生成一些变量,如生成变量X1, X2, X3,并在后续的方法中调用,完成赋值、取值等操作。这个问题也算是常见的吧,之前遇到过,也不了了之了。而这次遇到了同样的问题,虽然是创建三个变量数量较少,但从代码维护和易读性的角度考虑,需要使用一些恰当的手段,来避免重复写三次同样代码带来的弊端。一百次,一万次?总不能复制这么多次吧。(为何不复制?详情参考软件工程中的软件维护)。
因此有必要养成良好的习惯,而不是复制三次同样的代码。
使用Locals()方法
在普通函数内的确可以使用,但在类中不行。这个问题也困扰了我很久,所以,建议在编写类时需要批
Python3 基本数据类型
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
实例(Python 3.0+)
#!/usr/bin/python3
counter = 100 # 整型变量
miles = 1000.0 #
在python中,变量名储存在一个dict中,dict的keys为变量名,value为值。
可以通过local(),输入全部的变量
names=local()#获取全部局部变量名
print(names.keys())
['_dh', '__', '__builtin__', 'names', 'quit', '_i3', '_i2', '_i1', '__package__', 'e...