python中的映射类型,映射在Python中的实现是数据结构什么

  python中的映射类型,映射在Python中的实现是数据结构什么

  大蟒中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr、改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。

  获取成员: getattr

  classFoo:

  def__init__(自己,姓名,年龄):

  self.name=name

  年龄=年龄

  obj=Foo(klvchen ,18)

  inp=输入()

  v=getattr(obj,inp)

  印刷(五)运行结果:

  名字

  klvchenclassFoo:

  def__init__(自己,姓名,年龄):

  self.name=name

  年龄=年龄

  defshow(self):

  返回" % s-% s"%(自身。姓名、年龄)

  obj=Foo(klvchen ,18)

  func=getattr(obj, show )

  打印(功能)

  res=func()

  打印(分辨率)运行结果:

  boundmethodfoo。_ _ main _ _的显示。0x 00000234 f 6942588处的foo对象

  klv陈-18型

  classFoo:

  def__init__(自己,姓名,年龄):

  self.name=name

  年龄=年龄

  defshow(self):

  返回" % s-% s"%(自身。姓名、年龄)

  obj=Foo(klvchen ,18)

  print(hasattr(obj, name1 ))运行结果:

  假检查是否含有成员: hasattr

  classFoo:

  def__init__(自己,姓名,年龄):

  n

  bsp;self.name=name

  self.age=age

  defshow(self):

  return"%s-%s"%(self.name,self.age)

  obj=Foo('klvchen',18)

  #print(hasattr(obj,'name1'))

  setattr(obj,'key','value')

  print(obj.key)运行结果:

  

value
相关推荐:《Python视频教程》

  删除成员: delattr

  

classFoo:

  def__init__(self,name,age):

  self.name=name

  self.age=age

  defshow(self):

  return"%s-%s"%(self.name,self.age)

  obj=Foo('klvchen',18)

  print(obj.name)

  delattr(obj,'name')

  print(obj.name)

运行结果:

  

klvchen

  AttributeError:'Foo'objecthasnoattribute'name'

通过字符串的形式操作对象中的成员

  

classFoo:

  stat='666'

  def__init__(self,name,age):

  self.name=name

  self.age=age

  res=getattr(Foo,'stat')

  print(res)

运行结果:

  

666
创建两个文件,s1.py 和 s2.py

  s2.py 内容如下:

  

NAME='klvchen'

  deffunc():

  return'func'

s1.py 内容如下:

  

imports2

  res1=getattr(s2,'NAME')

  print(res1)

  res2=getattr(s2,'func')

  result=res2()

  print(result)

运行 s1.py 文件:

  

klvchen

  func

创建两个文件,s1.py 和 s2.py

  s2.py 内容如下:

  

NAME='klvchen'

  deffunc():

  return'cwe'

  classFoo:

  def__init__(self):

  self.name=666

s1.py 内容如下:

  

imports2

  res1=getattr(s2,'NAME')

  print(res1)

  res2=getattr(s2,'func')

  result=res2()

  print(result)

  cls=getattr(s2,'Foo')

  print(cls)

  obj=cls()

  print(obj)

  print(obj.name)

运行 s1.py 文件,运行结果:

  

klvchen

  cwe

  <class's2.Foo'>

  <s2.Fooobjectat0x000001CFCDBB2438>

  666

创建两个文件,s1.py 和 s2.py

  s2.py 内容如下:

  

deff1():

  return'首页'

  deff2():

  return'新闻'

  deff3():

  return'精华'

s1.py 内容如下:

  

imports2

  inp=input('请输入要查看的URL:')

  ifhasattr(s2,inp):

  func=getattr(s2,inp)

  result=func()

  print(result)

  else:

  print('404')

运行 s1.py 文件,运行结果:

  

请输入要查看的URL:f1

  首页

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • mysql复合索引和组合索引,mysql组合索引数据结构
  • mysql复合索引和组合索引,mysql组合索引数据结构,Mysql之组合索引方法详解
  • mysql复合索引和组合索引,mysql复合索引数据结构
  • mysql复合索引和组合索引,mysql复合索引数据结构,MySQL的复合索引总结
  • b+树 多路搜索树,数据结构中树的分类
  • b+树 多路搜索树,数据结构中树的分类,数据结构-树(三):多路搜索树B树、B+树
  • avl树的构造,avl树特性,数据结构之AVL树详解
  • 数据结构c语言哈夫曼树,c语言哈夫曼树的构造,使用C语言详解霍夫曼树数据结构
  • c语言数据结构算法编程库,数据结构 c语言中文网
  • c语言数据结构算法编程库,数据结构 c语言中文网,C语言编程数据结构基础详解小白篇
  • c++纸牌游戏,数据结构纸牌游戏c语言
  • c++纸牌游戏,数据结构纸牌游戏c语言,C语言实战之纸牌游戏
  • ,,c#解析jobject的数据结构
  • ,,javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
  • ,,Java 数据结构与算法系列精讲之背包问题
  • 留言与评论(共有 条评论)
       
    验证码: