从“lambda”函数传递

2024-09-24 00:22:46 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我使用库外的类。如果设置了某个参数,我只想调用某些函数

例如:

import pyserial

serialobj=serial.Serial()

parameter=0
#The part idk about
def serialobjpass()
     if parameter=1:
         pass Argument to serialobj.

serialobj可能是serialobj.write()serialobj.recieve() 我会像一个男人在中间打电话,当我不希望他们


Tags: the函数import参数ifparameterdefserial
1条回答
网友
1楼 · 发布于 2024-09-24 00:22:46

类似的方法可能会奏效:

class Forwarder(object):
  def __init__(self, target):
    self.target = target
    self.parameter = 1
  def read(self, n):
    print(('READ', n))
    if self.parameter:
      return self.target.read(n)
    else:
      return 0
  def write(self, data):
    print(('WRITE', data))
    if self.parameter:
      return self.target.write(data)
    else:
      return len(data)

import pyserial
serialobj = Forwarder(serial.Serial())
...
serialobj.write('HELLO\r\n')
print([serialobj.read(1)])
self.parameter = 0  # Prevent subsequent reads or writes.
serialobj.write('World\r\n')  # Won't be written to the serial port.

在此设置中,Forwarder对象截取对.read.write方法的所有调用,并根据参数的设置方式调用原始的.read.write方法

相关问题 更多 >