# PyTraits ## Introduction PyTraits is a Python library that provides functionality similar to Rust traits. It allows you to define protocols using `impl` or `trait` annotations to specify the behavior that classes should implement. ## Installation You can install PyTraits using pip: ```bash pip install pytraits ``` ## Usage 使用 PyTraits,首先需要使用 `trait` 注解定义一个协议: ```python from typing import runtime_checkable @runtime_checkable class Printable: def print(self): pass ``` 然后,可以使用`impl`或`trait`装饰器为已定义的类实现该协议: ```python from pytraits import impl, trait class MyClass1: pass @impl(Printable) class MyClassImplPrintable(MyClass1): def print(self): print("从 MyClass 打印") class MyClass2: pass @trait class MyClassTraitPrintable(MyClass2, Printable): def print(self): print("从 MyClass2 打印") mc1: MyClass1 | Printable = MyClass1() mc2: MyClass2 | Printable = MyClass2() mc1.print() mc2.print() ``` 现在,`MyClass` 实现了 `Printable` 协议,可以相应地使用。 ## Contributing Contributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request on GitHub. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.