歌者文明清理员 发表于 2024-7-16 23:32:49

python版C++(闲的)

class CoutClass:
    def __lshift__(self, other):
      print(other, end="")
      return self
cout = CoutClass()
endl = "\n"


cout << "1 + 1 = " << 1 + 1 << endl;
cout << "emmmmmm..." << endl;


可惜,cin无法实现

FishC 发表于 2024-7-16 23:34:07

哈,Python 版的 C++,让我们来玩一下吧!这段代码实现了一个简单的 `cout` 类,让我们可以像 C++ 中那样使用 `<<` 运算符来输出内容。

class CoutClass:
    def __lshift__(self, other):
      print(other, end="")
      return self

cout = CoutClass()
endl = "\n"

cout << "Hello, World!" << endl
cout << "Python meets C++ magic!" << endl

在这里,我们创建了一个 `CoutClass` 类,重载了 `__lshift__` 方法,使得对象 `cout` 可以接受 `<<` 运算符,用于打印内容。`endl` 变量代表换行符,在需要换行时使用。

输出结果会像这样:
Hello, World!
Python meets C++ magic!

这种写法虽然有些不同寻常,但是可以模仿 C++ 中流式输出的风格,尽管 Python 本身有更直接的输出方式。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

liuhongrun2022 发表于 2024-7-17 07:32:03

cin确实无法完美的实现,但还是模仿了一下
a = ['']
b = ['']

class Cin:
    def __rshift__(self, other):
      other = input()
      return self

cin = Cin()
cin >> a >> b;
print(a, b)

歌者文明清理员 发表于 2024-7-17 10:32:15

liuhongrun2022 发表于 2024-7-17 07:32
cin确实无法完美的实现,但还是模仿了一下

6

歌者文明清理员 发表于 2024-7-17 13:38:43

liuhongrun2022 发表于 2024-7-17 07:32
cin确实无法完美的实现,但还是模仿了一下

实现不了空格切断

liuhongrun2022 发表于 2024-7-17 13:57:48

歌者文明清理员 发表于 2024-7-17 13:38
实现不了空格切断

我去研究一下

歌者文明清理员 发表于 2024-7-17 20:04:37

liuhongrun2022 发表于 2024-7-17 13:57
我去研究一下

class CppClass:
    def __lshift__(self, other):
      print(other, end="")
      return self
    def __rshift__(self, other):
      datas = input().split()
      for i, dtype in enumerate(other.datas):
            other.datas = dtype(datas)
class Input:
    def __init__(self, *dtypes):
      self.datas = list(dtypes)
    def __rshift__(self, other):
      return Input(self.data + other.data)
cout = cin = CppClass()
endl = "\n"

a = Input(int, str)
cin >> a;
cout << a.datas;

一点沙 发表于 2024-8-7 21:07:33

歌者文明清理员 发表于 2024-7-17 20:04


芜湖回归了(指我)

歌者文明清理员 发表于 2024-8-8 12:51:34

一点沙 发表于 2024-8-7 21:07
芜湖回归了(指我)

我草我前几天刚想到你
页: [1]
查看完整版本: python版C++(闲的)