python问与答常识

来源:互联网 发布:手机p照片软件 编辑:程序博客网 时间:2024/06/05 15:57
1、 问:python类和实例的区别和联系是什么

答:

(1)类是创建实例的工厂,可以用来创建多个类的实例,即类是实例的模板;

(2) 他们都定义了名字空间,拥有各自的属性;
(3) 类的属性(数据属性和方法属性)能够被实例继承和使用。

2、 问:python类和模块,包区别和联系是什么?

答:

(1)模块在python中对应得是.py文件,类是定义在模块中的内容;而包可以包含多 个模块的目录,其中__init__.py文件用于初始化包;

(2) 他们也都定义了名字空间,并且拥有各自的属性;
(3) 他们共同构成了oop的结构组织。

3、问:python中pickle模块是用来做什么的?其主要的函数有哪些?
答:pickle模块用来实现python对象的序列化和反序列化。通常地pickle将python对象序列化为二进制流或文件。
其主要的函数有:pickle.dump(),pickle.load(),pickle.dumps(),pickle.loads()等。 

4、 问:以下程序的输入是什么?

class Test1(object):

def __init__(self):

print "This is init called!"

def __new__(cls):

print "This is new called!"

return super(Test1,cls).__new__(cls)

class Test2(object):

def __init__(self):

print "This is init called!"

def __new__(cls):

print "This is new called!"

test1=Test1()

test2=Test2()


答:
This is new called!
This is init called!
This is new called!

5、 问:什么是元类(meta_class)?

答:一句话,元类就是用来创建类的“东西”,或者说元类是用于创建类的类。


6、 问:面向对象的特性是什么?
答:抽象,封装,继承和多态。


7、 问:python oop中self是用来做什么的?
答:self表示类的实例本身,相当于java语言中的this,是类定义实例方法中第一个显式参数,而在类的实例方法调用时默认第一个隐式参数。


8、问:python类中__init__,__new__方法的区别是什么?
答:(1)__new__可以看做是类“真正”的构造函数,__init__是类“友好”的构造函数(或 者叫初始化方法)。
(2) __new__方法接受第一个参数是cls,__init__接受第一个参数是self,其他参数 都相同。
(3) __init__是在类实例创建之后调用,而 __new__方法正是创建这个类实例的方 法。
(4) __new__方法返回类的实例对象,__init__方法不返回值。


9.问:设计模式的基本原则是什么?
答:(1)单一职责原则(SRP):就一个类而言,有且仅有一个引起它变化因素。
(2) 开放封闭原则:对扩展时开放的,对修改是封闭的。
(3) 依赖倒置原则:高层模块不应该依赖低层模;抽象不应该依赖具体(细节),具 体(细节)应该依赖抽象。
(4) 接口隔离原则:一个类对另外一个类的依赖性应当是建立在最小的接口上。
(5) Liskov替换原则:子类型必须能够替换掉它们的父类型。


10.

问:通过重载类__new__方法,实现类的单例模式。
答:代码如下:
class Singleton(object):

def __new__(cls):

if not hasattr(cls, 'instance'):

cls.instance = super(Singleton, cls).__new__(cls)

return cls.instance

if __name__=="__main__":

instance1=Singleton()

instance2=Singleton()

print "The same:" , ("yes" if instance1 is instance2 else "no")


11.问:请简述模块设计的基本原则是什么?
答:高内聚,低耦合。


12. 问:在python中一个函数如果没有显示return返回值,那么它返回的是什么?
答:返回一个None对象。


13.问:python的模块搜索路径有哪些?

答:

1)程序所在的目录;

2) PYTHONPATH中包含的目录;
3) python标准库目录;
4) 包含在.pth文件中的目录;
以上可通过sys.path查询得到完整的python模块搜索目录;


14.文件a.py的内容如下:
common=100
item=["abc","def"]
文件b.py的内容如下:
from a import common
from a import item
common=200
item[0]="cba"
文件c.py的内容如下:
import a
import b
print a.common,a.item
请问c.py的输出是什么?
答:100,['cba', 'def']


15.问简述python中的wmi模块的作用?它有哪些主要的函数?请用该模块简单实现获取本地主机的系统信息。

答:

1)wmi是windows系统管理的核心,它以公共信息模型为基础,为脚本程序和其他MMI提供了一个公共访问接口,python中的wmi是wmi的python实现。

2) 主要的函数包含:WMI(),Win32_Service(),Win32_OperationSystem(),Win32_Prcoessor(),Win32_DiskDriver()等。
3) 使用wmi获取本地主机系统基本信息的实现:
import wmi

#连接本地主机
c=wmi.WMI("localhost")

#获取主机操作系统类型

for os in c.Win32_OperatingSystem():

print os.Caption,

print os.OSArchitecture,

print os.NumberOfProcesses


#获取主机CPU信息

for cpu in c.Win32_Processor():

print cpu.Name,

print cpu.NumberOfCores,

print cpu.NumberOfLogicalProcessors

print cpu.LoadPercentage


#获取内存信息

for mem in c.Win32_PhysicalMemory():

print mem.Name,

print int(mem.Capacity)/1024/1024/1024,"GB"


#获取磁盘信息

for disk in c.Win32_LogicalDisk():

print disk.Caption,

print int(disk.FreeSpace)/1024/1024/1024,"GB"

print int(disk.Size)/1024/1024/1024,"GB"


0 0
原创粉丝点击