牛客网专项练习30天Pytnon篇第29天

简介: 牛客网专项练习30天Pytnon篇第29天

1.有如下类定义,下列描述错误的是:(D)

class A(object):
    pass
class B(A):
    pass
b = B()

A.isinstance(b, A) == True


B.isinstance(b, object) == True


C.issubclass(B, A) == True


D.issubclass(b, B) == True


解析:


      abc isinstance(object,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True;issubclass(class,classinfo),用于判断class是否是classinfo类的子类,如果是返回True。


2.有如下类定义,下列描述正确的是:(D)

class Person:
  def __init__(self):
  pass
  def getAge(self):
  print(__name__)
p = Person()
p.getAge()

A.Person  


B.getAge


C.usr.lib.python.person


D.__main__


解析:


       __name__这个系统变量显示了当前模块执行过程中的名称,如果当前程序运行在这个模块中,__name__ 的名称就是__main__如果不是,则为这个模块的名称;__main__一般作为函数的入口,类似于C语言,尤其在大型工程中,常常有if __name__ == "__main__":来表明整个工程开始运行的入口。


3.执行以下程序,输出结果为:(B)

class Base(object):
  count = 0
  def __init__(self):
  pass
b1 = Base()
b2 = Base()
b1.count = b1.count + 1
print(b1.count,end=" ")
print(Base.count,end=" ")
print(b2.count)

A.1 1 1  


B.1 0 0


C.1 0 1


D.抛出异常


解析:


       count为类属性,类属性可以为实例属性提供默认值,也就是,当使用b1.count时,count成了b1对象的实例属性,实例属性不会影响到类属性的值,也不会影响到其他实例属性,所以对b1.count进行修改时只会影响自身,Base.count和b2.count的值仍为0。


4.根据以下程序,下列选项中,说法正确的是:(C)

class Foo():
    def __init__(self):
        pass
    def __getitem__(self,pos):
        return range(0,30,10)[pos]
foo = Foo()

A.foo对象表现得像个序列


B.可以使用len(foo)来查看对象foo的元素个数


C.可以使用for i in foo:print(i)来遍历foo的元素


D.不能使用foo[0]来访问对象foo的第一个元素


解析:


      若要表现像个序列,必须满足序列的两个方法:__len__和__getitem__,由于Foo类中没有实现__len__,因此不满足序列协议,foo对象不像序列,A错误;foo对象没有定义__len__方法,不能使用它来查看对象个数,B错误;对对象的迭代需要调用__iter__,如果没有定义该方法,python会调用__getitem__(),让迭代和in运算符可用,因此foo是可迭代的,C正确;根据索引访问对象元素,会调用__getitem__(),因此D错误。


5.已知print_func.py的代码如下:

print('Hello World!')
print('__name__value: ', __name__)
def main():
    print('This message is from main function')
if __name__ =='__main__':
    main()
已知print_module.py的代码如下:
import print_func
print("Done!")
运行print_module.py程序,结果是:(A)


A.Hello World!  __name__ value: print_func  Done!


B.Hello World!  __name__ value: print_module  Done!


C.Hello World!  __name__ value: __main__  Done!


D.Hello World!  __name__ value:  Done!


解析:


      一个模块中有__name__,直接运行 __name__为 __main__,调用该模块,__name__为被调用模块的模块名。


相关文章
|
6月前
|
人工智能 人机交互
清华、面壁提出创新AI Agent交互:能主动思考、预测需求
清华大学与面壁智能团队提出了一种创新的AI Agent交互模式,将基于大型语言模型的智能体从被动响应转变为主动协助。通过数据驱动的方法,研究团队开发了能够预测和主动发起任务的智能体,并创建了ProactiveBench数据集。实验结果显示,经过微调的模型在主动性方面取得了66.47%的F1分数,展示了该方法在人机协作中的潜力。论文链接:https://arxiv.org/abs/2410.12361
195 2
|
10月前
|
机器学习/深度学习 编解码 算法
了解与对比主流背景去除工具
本文对比了几款主流的背景去除工具,包括Remove.bg、Removal.ai、RMBG 2.0、Imagga和Wondershare Pixcut,重点介绍了RMBG 2.0这款开源工具的性能、优势及挑战,适用于不同需求的用户选择。
|
人工智能 安全 关系型数据库
阿里云亮相金蝶集团生态合作伙伴大会
3月1日-2日,以“共创共赢 迈向一流”为主题的2024年金蝶集团生态合作伙伴大会在重庆盛大举行。阿里云作为金蝶重要的战略合作伙伴,受邀参与此次盛会,并在小微(SME)业务分会场进行演讲。
内核中的UDP socket流程(7)——udp_sendmsg
作者:gfree.wind@gmail.com 原文:http://blog.chinaunix.net/space.php?uid=23629988&do=blog&id=85925 sock_sendmsg的代码很简单 int sock_sendmsg(struct sock...
2580 0
|
JavaScript 前端开发
JavaScript时间戳获取及时间戳判断(同时设置不同的颜色。已开始的事件显示绿色,未开始的事件显示黑色,过去的事件显示灰色)
JavaScript时间戳获取及时间戳判断(同时设置不同的颜色。已开始的事件显示绿色,未开始的事件显示黑色,过去的事件显示灰色)
250 0
|
网络协议 应用服务中间件 API
CentOS7.5 手动部署Ceph RGW
目    录 1     设备列表... 1 2     Ceph RGW 部署... 1 2.1     使用civetweb配置... 2 2.2     使用nginx配置... 5   本文主要记录一下手动部署rgw的过程,环境是使用的之前手动部署的ceph环境,之前的环境部署可以参考以下链接https://yq.aliyun.com/articles/604372   Ceph RGW(即RADOS Gateway)是Ceph对象存储网关服务,是基于LIBRADOS接口封装实现的FastCGI服务,对外提供存储和管理对象数据的Restful API。
8010 0
|
SQL Oracle 关系型数据库
ORA-01012: not logged on 解决办法
<br><br><p style="line-height:23px; padding-top:0px; padding-bottom:0px; margin-top:8px; margin-bottom:8px; letter-spacing:0.5px; font-size:13px; color:rgb(51,51,51); font-family:微软雅黑,Verdana,sans
5317 0
|
异构计算 openCL 并行计算
NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比
NVIDIA Tesla系列GPU适用于高性能计算(HPC)、深度学习等超大规模数据计算,Tesla系列GPU能够处理解析PB级的数据,速度比使用传统CPU快几个数量级,NVIDIA Tesla GPU系列P4、T4、P40以及V100是Tesla GPU系列的明星产品,云服务器吧分享NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比:
|
Arthas SQL Java
arthas 高级玩法
redefine的class不能修改、添加、删除类的field和method,包括方法参数、方法名称及返回值; redefine命令和jad/watch/trace/monitor/tt等命令会冲突。执行完redefine之后,如果再执行上面提到的命令,则会把redefine的字节码重置。