首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 2.7 - Classes

Python 2.7 - Classes
EN

Stack Overflow用户
提问于 2013-06-14 03:25:38
回答 2查看 288关注 0票数 0

我正在尝试在python (perfmon)中编辑库-该文件是session.py

我想添加一个模块,可以从USB端口记录一些读数。

这也是我第一次试用python中的类。

代码语言:javascript
复制
from perfmon import *
import os
import sys
import serial

# Common base class
class Session:
  def __init__(self, events):
    self.system = System()
    self.event_names = events
    self.events = []
    self.fds = []
    for e in events:
      err, encoding = pfm_get_perf_event_encoding(e, PFM_PLM0 | PFM_PLM3,
                                                  None, None)
      self.events.append(encoding)
    self.USB = serial.Serial("/dev/ttyUSB0",115200)

  def __del__(self):
    pass

  def read(self, fd):
    # TODO: determine counter width
    return os.read(fd, 8)

class PerThreadSession(Session):
  def __init__(self, pid, events):
    self.pid = pid
    Session.__init__(self, events)

  def __del__(self):
    Session.__del__(self)

  def start(self):
    for e in self.events:
      self.fds.append(perf_event_open(e, self.pid, -1, -1, 0))

  def read(self, i):
    return Session.read(self, self.fds[i])

class USB(Session):
  def __init__(self):   
    return self.USB

这是我得到的以下错误:

代码语言:javascript
复制
Python 2.7.3 (default, Apr 14 2012, 08:58:41) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import perfmon
>>> test = perfmon.USB()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'USB'

我正在做的错误是什么?我知道self在python中是一个构造器,我可以在那里返回值吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-14 03:38:59

据我所知,你的答案是

代码语言:javascript
复制
>>> from perfmon import session
>>> test = session.USB()

但是你这样做是错误的。您应该在您的工作区/项目目录中创建自己的模块。导入会话模块并在其中创建类

代码语言:javascript
复制
from perfmon import session
class USB(Session):
    def __init__(self):   
        pass #I have changed this part as It has two errors in your example
票数 1
EN

Stack Overflow用户

发布于 2013-06-14 03:38:53

您不能从类构造函数返回任何内容(除了None之外)。

否则将会有一个

代码语言:javascript
复制
TypeError: __init__() should return None
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17095401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档