疑问总结(九)(持续更新中)
1、经典类和新类的显示的区别?
定义类时()中加了object 是定义新类,不加定义经典类。
class DD():
pass
print 'classic class',type(DD)
class AA(object):
pass
print 'new class',type(AA)
>>>
classic class <type 'classobj'>
new class <type 'type'>
>>>
2、linux系统中,ls -lh 显示的文件名后面的一个点和两个点是什么意思?
一个点表示本目录,两个点是上一级目录。可以理解为定义了指针。
3、dd命令后,为什么cpu消耗很大,mem却很少?
dd命令效果是反复的复制文件,cpu不能直接控制硬盘,必须通过mem,所以mem有消耗,但是可能是算法决定了cpu在反复的操作句柄,所以cpu很高。
4、怎么终止函数
continue,break,return。return可以终止整个函数。这三个语句的用法在前面以详细说明,这里不再冗述。
5、怎么用dict构造一个元素的字典?
注意第一个元组后要加逗号。
>>> a = dict((('k1','v1'),))
>>> a
{'k1': 'v1'}
>>>
6、什么相当于假?
0,bool值False,字符串,列表,字典为空,None都符合假的定义。False,字符串,列表,字典为空,None之间不相等。
7、浮点型赋值,为什么对象的内存地址是一样的?
a = 100.0 b = 100.0 print (a is b) print id(a),id(b) >>> True 25355320 25355320 >>>
实际对浮点型数据存储的内存地址是不一样的,但是python给其中一小部分相同的数字做了统一内存的机制。
8、is和==区别
python中对象三要素,类型,内存地址和数值。用以下函数可以验证,type,id。
is 是判断两个函数内存地址是否相等。==是判断两个对象的value是否相等。
a = 100 b = 100.0 print (a is b) print id(a),id(b) print(a == b) >>> False 19522788 25683000 True >>>
9、类方法的调用机制
未解决#######################################
为什么不提示错误,这是什么机制。
class DD(object):
'test'
def foo(self):
print 'guess'
pass
dd = DD()
DD.foo(dd)
>>>
guess
>>>
10、在python提示中的buffer指什么?
Traceback (most recent call last): File "C:/Python27/readfilecon.py", line 14, in <module> res =re.findall(ob,colList) File "C:\Python27\lib\re.py", line 177, in findall return _compile(pattern, flags).findall(string) TypeError: expected string or buffer
>>> print ('r%-5s%-10s'%('aabc','qwe')) raabc qwe >>>
实际是生效的,给这个字符串5个字符的位置 字符串左对齐。
14、为什么id(a.item)地址不相同
首次结果和后续的结果不相同,从第二次开始所有的结果相同。
未有明确答案?????????????
15、4G内存为什么能存一个十多位的数字?
4G内存按照2*32一共才能表示40亿左右的数字,为什么能表示比如1000000000000这么大的数值呢?因为4G说的是内存的容量,即内存的地址,所以也就是有4g个8位的空间可以存储数据,而一个字节即8bit位能表示多少数字呢 2*8,那么int占4个字节也就是2*32,那么对于一个L来说多占用一些内粗空间就能表示了那个大数字。4g内存一般地址总线也是4G即能够在4G的范围寻址。
浙公网安备 33010602011771号