当前位置: 首页 > news >正文

网站开发技术人员保密协议网站开发网校

网站开发技术人员保密协议,网站开发网校,门户网站建设制作,如何进wordpress后台Python如何把类当做字典来访问 Python把类当做字典来访问 定义一个类将它实例化,我们可以通过obj.属性来访问类的属性,如果想获取类的所有实例变量,我们可以使用obj.__dict__来访问,如下: class A:def __init__(self)…

Python如何把类当做字典来访问

Python把类当做字典来访问

定义一个类将它实例化,我们可以通过obj.属性来访问类的属性,如果想获取类的所有实例变量,我们可以使用obj.__dict__来访问,如下:

class A:def __init__(self):self.a = 1self.b = 2
a = A()
print(a.__dict__)
# {'a': 1, 'b': 2}
#获取变量a:
print(a.__dict__['a'])
# 1

如果我们想直接通过字典的方式访问类,obj=A(),dict(obj)直接拿到类的所有实例变量,可以通过如下方式:

class A:def __init__(self):self.a = 1self.b = 2def keys(self):return ('a','b',)def __getitem__(self, item):return getattr(self, item)
a = A()
print(dict(a))
#输出:{'a': 1, 'b': 2}

可以看到,通过定义keys方法能够限制类的实例变量的输出,用内置的dict方法就能把类转换成一个普通的字典了。

浅谈Python类命名空间

Python的类就像命名空间。Python程序默认处于全局命名空间内,类体则处于类命名空间内,Python 允许在全局范围内放置可执行代码,当 Python 执行该程序时,这些代码就会获得执行的机会。类似地,Python同样允许在类范围内放置可执行代码,当 Python 执行该类定义肘,这些代码同样会获得执行的机会。

例如,如下程序测试了类命名空间:

class Item:# 直接在类空间中放置执行性质代码print('正在定义Item类')for i in range(10):if i % 2 == 0 :print('偶数:', i)else:print('奇数:', i)

正如从上面代码所看到的,程序直接在 Item 类体中放置普通的输出语句、循环语句、分支语句,这都是合法的。当程序执行 Item 类时,Item 类命名空间中的这些代码都会被执行。

从执行效果来看,这些可执行代码被放在 Python 类命名空间与全局空间并没有太大的区别。确实如此,这是因为程序并没有定义“成员”(变量或函数),这些代码执行之后就完了,不会留下什么。

但下面代码就有区别。下面代码示范了在全局空间和类命名空间内分别定义 lambda 表达式:

global_fn = lambda p: print('执行lambda表达式,p参数: ', p)
class Category:cate_fn = lambda p: print('执行lambda表达式,p参数: ', p)
# 调用全局范围内的global_fn,为参数p传入参数值
global_fn('fkit')  # ①
c = Category()
# 调用类命名空间内的cate_fn,Python自动绑定第一个参数
c.cate_fn()  # ②

上面程序分别在全局空间、类命名空间内定义了两个 lambda 表达式,在全局空间内定义的 lambda 表达式就相当于一个普通函数,因此程序使用调用函数的方式来调用该 lambda 表达式,并显式地为第一个参数绑定参数值,如上面程序中 ① 号代码所示。

对于在类命名空间内定义的 lambda 表达式,则相当于在该类命名空间中定义了一个函数,这个函数就变成了实例方法,因此程序必须使用调用方法的方式来调用该 lambda 表达式,Python 同样会为该方法的第二个参数(相当于 self 参数)绑定参数值,如上面程序中 ② 号代码所示。

http://www.yayakq.cn/news/651640/

相关文章:

  • 视频连接网站怎么做百度不收录网站内页
  • 网站如何做双链路网站如何做下载链接
  • 网站主题风格有哪些有什么类型的网站
  • 白云区网站建设淡水网络公司做网站
  • 如何建立自己的购物网站百度网络优化推广公司
  • 网站设计三把火昆明网站建设搜q479185700
  • 浙江建设网站橙光文字游戏制作工具
  • 建设银行网站首页下载建设asp网站视频教程
  • 漂亮的学校网站模板下载婚恋网站如何做推广
  • 云南做网站需要多少钱安装安全狗网站打不开
  • wordpress导航站主题做房产网站多少钱
  • 株洲网站建设公司wordpress 数据库锁死
  • 网站建设需要考哪些证it之家网站源码
  • 网站建设 福步 2018企业网站制作托管
  • 西安网站关键词优化外包网站建设多少钱
  • 开发一个网站大概多少钱来几个关键词兄弟们
  • 域名购买网在线优化网站建设
  • 建筑类电商网站用手机如何制作网页链接
  • 网站建设合同属于印花税的哪个税目网络安全专业就业前景
  • 公司网站应该怎么做精品资源共享课网站建设 碧辉腾乐
  • 网站大图片优化做公司网站注意什么
  • 网上商城流程图东莞百度网站优化
  • 十大摄影网站排名大学网站建设专业
  • 一个网站的建设成本网站建设和网络推广哪个难做
  • 简述建设网站的步骤6为什么建立网站
  • 手机销售网站的设计与实现重庆seo技术
  • php网站开发项目经验如何写如何做系统集成公司网站
  • 漳州市网站建设直播视频
  • 企业网站源码简约百度指数分析案例
  • 微网站如何做微信支付宝支付宝支付接口pc端网页设计公司