//网站根目录 var __ID_HOME__="#zj_home"; //生产环境设置为true,本地设置为false var __JS_DEBUG__= true; var __JS_APP__ = ""; var __JS_APP_HOME__ = "/"; var __JS_PUBLIC__ = "/Public"; var __JS_HOME__ = "/Template/default/Home/Public"; var _URL_SIGN = "https://zhangjunbk.com:443/sign"; var _URL_LOGIN = "https://zhangjunbk.com:443/login"; var _URL_REG = "https://zhangjunbk.com:443/reg"; var _URL_FORGET = "https://zhangjunbk.com:443/forget"; var _URL_SEND_EMAIL = "https://zhangjunbk.com:443/sendEmail"; var _URL_SEND_MOBILE = "https://zhangjunbk.com:443/sendMobile"; var _URL_RELATION_EMAIL = "https://zhangjunbk.com:443/relationEmail"; var _URL_SIGN_RELATION_EMAIL = "https://zhangjunbk.com:443/sign_relation"; var _URL_FRONT_LOGOUT="/frontlogout"; var _URL_CHECK_LOGIN = "https://zhangjunbk.com:443/check_login"; var _URL_PAY_POINTS = "https://zhangjunbk.com:443/payPoints"; var _URL_PAY_POINTS_VIDEO = "https://zhangjunbk.com:443/payPointsVideo"; var _URL_USER_POINTS = "https://zhangjunbk.com:443/uindex"; var _URL_AJAX_STOCK_SEALING = "https://zhangjunbk.com:443/ajaxStockSealing"; var _URL_API_WX_CREATE = "https://zhangjunbk.com:443/wxV2Create"; var _URL_API_WX_CREATE_NATIVE_REWARD = "https://zhangjunbk.com:443/wxV2CreateNative_reward"; var _URL_CENTER_USER = "https://zhangjunbk.com:443/centerUser"; var _URL_QQ = "{https://www.zhangjunbk.com/oauth/callback/}";

Python类中的魔法方法之 __slots__原理解析

系统 1379 0

在类中每次实例化一个对象都会生产一个字典来保存一个对象的所有的实例属性,这样非常的有用处,可以使我们任意的去设置新的属性。

每次实例化一个对象python都会分配一个固定大小内存的字典来保存属性,如果对象很多的情况下会浪费内存空间。

可通过__slots__方法告诉python不要使用字典,而且只给一个固定集合的属性分配空间

            
class Foo(object):
 __slots__ = ("x","y","z")

 def __init__(self,x,y):
  self.x = x
  self.y = y
  self.z = None

 def tell_info(self,name):
  return getattr(self,name)

c = Foo(10,20)
# 设置和获取__slots__中设置的可访问实例属性
print(c.tell_info("x"))  # 结果:10

c.z=50
print(c.tell_info("z")) # 结果:50

# 设置一个不在__slots__中存在的属性,会报错
c.e = 70 # AttributeError: 'Foo' object has no attribute 'e'

# 访问对象.__dict__ 也会直接报错
print(c.__dict__) # AttributeError: 'Foo' object has no attribute '__dict__'
          

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论