python - 在 Python 中调用要返回的对象的方法时应该使用什么返回语法?
问题描述
我想设置并返回我在程序中定义的输入流对象,如果可用的话,我想要更简洁的语法。
以下代码按预期运行,我查找了有关此的各种帖子,但没有人描述一种简洁地在对象上执行方法然后返回它的方法
def setup_input_stream(self) -> AbstractInputStream:
self.midi_sender.connect(self.midi_note_reciever)
input_stream: AbstractInputStream = None
if (MidiInputStream.midi_input_avaliable()):
input_stream = MidiInputStream(self.midi_sender)
else:
input_stream = KeyboardInputStream(self.midi_sender)
input_stream.open()
return input_stream
我想要类似下面的东西,但是 open() 方法不返回对象本身(尽管它们是自定义的,所以如果它不被认为是不好的样式,我可以定义 open 函数来执行此操作)
def setup_input_stream(self) -> AbstractInputStream:
self.midi_sender.connect(self.midi_note_reciever)
if (MidiInputStream.midi_input_avaliable()):
return MidiInputStream(self.midi_sender).open()
else:
return KeyboardInputStream(self.midi_sender).open()
该程序基于 Python 3.7,因此它可以使用任何可用的新语法。谢谢!
解决方案
推荐阅读
- python - 使用python进行二叉树修剪[postorder方法不起作用]
- webstorm - WebStorm - 在引号中展开文本
- python - 如何计算熊猫数据框与其中的 NaN 的相关性
- python - 使用目录列表,分配输入选项并打印
- java - Xbase - 如何在推断器生成的方法上添加标签
- c# - 用oledb读取excel不显示正确的值
- react-native - 如何在 WebView 组件中调整 YouTube 预览缩略图的尺寸,因为它过大且过大?
- android - 接近警报未触发
- mysql - JHipSter 是否适合复杂的应用程序?
- cordova - 在离子框架中使用 Firebase 云消息传递插件的步骤