首页 > 解决方案 > 蟒蛇 | 返回类似于“os.get_terminal_size”的内容

问题描述

我想实现类似于返回的东西os.get_terminal_size

print(myFunction())

myFunction(a=1, b=2)

print(myFunction().a)    # 1

print(myFunction().b)    # 2

例子:

import os
os.get_terminal_size()
'os.terminal_size(columns=169, lines=40)'

os.get_terminal_size().columns
169

type(os.get_terminal_size)
'<class 'os.terminal_size'>'

我怎样才能做到这一点?

标签: pythonpython-3.x

解决方案


type(os.get_terminal_size)表明它是一个类,而不是函数。

第一行还表明它具有__str__显示带值的格式化文本的方法

class MyClass:

    def __init__(self):
        self.columns = 169
        self.lines = 40

    def __str__(self):
        return 'MyClass(columns={}, lines={})'.format(self.columns, self.lines)

print(MyClass())
# MyClass(columns=169, lines=40)

print(MyClass().columns)
# 169

编辑:

它也没有得到参数,但如果你想争论,那么你需要

class MyClass:

    def __init__(self, columns=169, lines=40):
        self.columns = columns
        self.lines = lines

    def __str__(self):
        return 'MyClass(columns={}, lines={})'.format(self.columns, self.lines)

print(MyClass())
# MyClass(columns=169, lines=40)

print(MyClass(columns=1, lines=2))
# MyClass(columns=1, lines=2)

但它不能保留值——它需要类的实例来保留它们。

print(MyClass(columns=1, lines=2).columns)
# 1

print(MyClass().columns)
# 169

my_instance = MyClass(columns=1, lines=2)
print(my_instance.columns)
# 1

推荐阅读