`

python编程的纠结

 
阅读更多

场景:

1. 定义一个对象

class Strategy:
  """
  Attributes:
   - version
   - inteval
   - period
   - validDay
   - onNetBeg
   - circleType
  """

  thrift_spec = (
    None, # 0
    (1, TType.STRING, 'version', None, None, ), # 1
    (2, TType.STRING, 'inteval', None, None, ), # 2
    (3, TType.STRING, 'period', None, None, ), # 3
    (4, TType.STRING, 'validDay', None, None, ), # 4
    (5, TType.STRING, 'onNetBeg', None, None, ), # 5
    (6, TType.I32, 'circleType', None,     1, ), # 6
  )

  def __init__(self, version=None, inteval=None, period=None, validDay=None, onNetBeg=None, circleType=thrift_spec[6][4],):
    self.version = version
    self.inteval = inteval
    self.period = period
    self.validDay = validDay
    self.onNetBeg = onNetBeg
    self.circleType = circleType

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.STRING:
          self.version = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.inteval = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.period = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.STRING:
          self.validDay = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.onNetBeg = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I32:
          self.circleType = iprot.readI32();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('CircleStrategy')
    if self.version is not None:
      oprot.writeFieldBegin('version', TType.STRING, 1)
      oprot.writeString(self.version)
      oprot.writeFieldEnd()
    if self.inteval is not None:
      oprot.writeFieldBegin('inteval', TType.STRING, 2)
      oprot.writeString(self.inteval)
      oprot.writeFieldEnd()
    if self.period is not None:
      oprot.writeFieldBegin('period', TType.STRING, 3)
      oprot.writeString(self.period)
      oprot.writeFieldEnd()
    if self.validDay is not None:
      oprot.writeFieldBegin('validDay', TType.STRING, 4)
      oprot.writeString(self.validDay)
      oprot.writeFieldEnd()
    if self.onNetBeg is not None:
      oprot.writeFieldBegin('onNetBeg', TType.STRING, 5)
      oprot.writeString(self.onNetBeg)
      oprot.writeFieldEnd()
    if self.circleType is not None:
      oprot.writeFieldBegin('circleType', TType.I32, 6)
      oprot.writeI32(self.circleType)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

 2. 当实例化对象时

strategy = Strategy()
strategy.interval = str(a.timeInterval)
   

3. 取值发现

strategy.inteval 取不到!

 

4. 纠结是

赋值的属性是strategy.interval 

原来是对象定义是属性名称写错了。

但是python语义是不会报错,只会给对象多增加一个属性!

 

5.解决办法

1.细心

2.再细心

3.还有就是带着放大镜找问题!

 

分享到:
评论

相关推荐

    树莓派Python

    树莓派Python是指基于树莓派设备上使用的Python编程语言,树莓派(Raspberry Pi)是一款适用于学习的低成本单板计算机,拥有Python语言的良好支持。这本教程为初学者提供了从零开始学习Python的全方位指导。 Python...

    python的tkinter编程

    【Python的Tkinter编程】 Tkinter是Python的标准GUI(图形用户界面)库,它基于Tcl/Tk。这个教程将通过一系列的例子,详细介绍Tkinter中的各种控件,包括Label、Button、Entry、Checkbutton、Radiobutton和Listbox...

    面向小学信息技术课程的Python游戏化编程教学研究.pdf

    相比于其他编程语言,Python更强调算法实现,而不是繁琐的语法细节,这使得学生可以更多地专注于解决问题,而非纠结于语言本身。 本文提出了一种游戏化编程教学法,旨在通过游戏化的方式激发小学生的学习兴趣,同时...

    python基础知识pdf

    综上所述,Python作为一种编程语言,它强调代码的可读性和简洁的语法,使得编程者能够专注于解决问题而非纠结于语法细节,使得Python在教育、科研、金融、数据分析以及网络爬虫等领域得到广泛使用。

    计算机毕业设计:Python实现的“今天吃什么”转盘程序(源码+详细说明),保证可靠运行,附赠计算机答辩PPT模板

    该程序利用Python编程语言的简洁与高效,构建了一个趣味横生的“今天吃什么”决策工具,旨在帮助用户解决日常饮食选择的难题。 这份资源不仅包含了完整的源码,还提供了详尽的说明文档,使用户能够轻松理解程序的...

    Python基础入门资料

    良好的 Python 代码通常读起来像自然语言一样流畅,这使得开发者能够更加专注于解决实际问题而非纠结于语言细节。 2. **易学**:相比于其他高级语言,Python 的语法更为简洁。它去除了 C 语言中复杂的指针概念,...

    python入门基础篇

    - **EditPlus/UE**:文本编辑器,也可用于Python编程。 #### 著名应用案例 - **MoinMoin Wiki**:一个基于Python的维基系统。 - **Zope**:一个开放源码的应用服务器,主要用于构建动态网站。 - **Plone**:基于...

    Think Python How to Think Like a Computer Scientist

    《像计算机科学家一样思考Python》是Allen Downey所著的Python编程教材,第2版的版本号为2.2.20。本书的版权信息表明,它由Allen Downey授权,由Green Tea Press出版,出版地在马萨诸塞州的Needham。本书的复制、...

    Python语言介绍及开发环境PPT课件.ppt

    3. **高层语言**:使用Python编程时,程序员不需要关心底层的内存管理等复杂细节,这使得开发者能更专注于应用程序逻辑。 4. **可移植性**:Python程序可以在多个平台上运行,只要该平台有一个可用的Python解释器,...

    Python学习笔记

    Python是一种免费、开源、解释型的编程语言,因其...这本《Python学习笔记》由皮大庆编写,它以清晰的结构和条理,为初学者提供了一个完整的学习路径,旨在帮助读者通过实际操作和练习掌握Python编程的基础知识和技能。

    2014年辛星Python数据库Sqlite3教程

    SQLite支持多种编程语言,其中Python对它的支持尤其方便,Python 2.5版本起内置了sqlite3库,使得Python操作SQLite变得简单快捷。 ### SQLite3的数据类型 与许多数据库不同,SQLite3是一个无类型数据库,它不强制...

    艺术院校Python程序设计课程教学研究.pdf

    1. 易学易懂:Python语言简洁明了,学生不需要纠结复杂的语法和算法,更容易上手。 2. 丰富的库支持:Python有广泛的库支持,特别是对于图像处理,这使得艺术类学生可以更容易地实现他们的创意。 3. 应用领域广泛:...

    python2和python3哪个使用率高

    Python 2和Python 3是Python编程语言的两个主要版本,两者在使用率上存在一定的差异。Python 2自2001年开始,随着不同版本的迭代,尤其是在2006年的2.5版本之后逐渐受到关注,尤其在大数据领域的兴起中获得了广泛的...

    python2和python3应该学哪个(python3.6与python3.7的选择)

    许多刚入门 Python 的朋友都在纠结的的问题是:我应该选择学习 python2 还是 python3? 对此,回答是:果断 Python3 !(推荐学习:Python视频教程) 可是,还有许多小白朋友仍然犹豫:那为什么还是有人推荐我学习 ...

    基于Python的“大学计算机基础”课程教学设计.pdf

    这使得学生可以将注意力集中在编程逻辑和思维上,而不是纠结于语言的细节。同时,Python具有大量的第三方库,这些库覆盖了从基础数据处理到高级数据分析的各个方面。利用这些库,教师可以将复杂的数据处理和算法展示...

    reptangles:一个简单的基于瓷砖的纠结海龟游戏,用python编写

    一个简单的基于图块的用python编写的纠结海龟游戏。 该游戏的灵感来自 ,并在某种程度上是的克隆。 我觉得这款游戏非常有趣,建议您退房。 也。 但是,这种“克隆”在受到纠缠的启发下将在几个方面有所不同: 它...

    用VB设计Python图形界面的插件-visualtkinter.zip

    使用VisualTkinter进行Python GUI开发,可以帮助开发者更专注于业务逻辑,而不是纠结于界面布局和控件管理。这对于初学者和希望提高开发效率的专业人士都是一个很好的选择。不过,需要注意的是,虽然界面设计变得...

    Python-djangodynamicscraper通过Django管理界面创建爬虫

    【Python-djangodynamicscraper通过Django管理界面创建爬虫】 在Python的世界里,Web爬虫是一种常见的工具,用于自动抓取互联网...通过Django管理界面,我们可以专注于数据的获取和处理,而不是纠结于底层的实现细节。

    Python库 | andrewAudio-1.0.1.tar.gz

    在当今的编程世界中,Python以其简洁明了的语法和丰富的库支持成为了众多开发者首选的开发语言。特别是在音频处理领域,Python库andrewAudio-1.0.1为开发者提供了强大的工具,使得音频处理工作变得更为简单。本文将...

    用Python开发app后端有优势吗

    Python 作为一种编程语言,在开发app后端时的确具备多种优势,尤其适合初学者和经验丰富的开发者。以下将详细探讨Python在app后端开发中的优点: 1. **简单易学**: Python以其简洁明了的语法著称,被誉为“胶水...

Global site tag (gtag.js) - Google Analytics