如何将包含构造函数、内部类的C#类转换为Python代码
C#类转Python等效实现
你提供的C#代码存在两处拼写笔误:Proeprty应为Property,构造函数内的MyInnerClass .car应为MyInnerClass.Car,以下是完全等效的Python代码实现:
基础实现(完全对应C#属性逻辑)
class Person: # 嵌套内部类,对应C#的InnerClass class InnerClass: @property def Car(self): return self._car @Car.setter def Car(self, value): self._car = value @property def Name(self): return self._name @Name.setter def Name(self, value): self._name = value @property def MyInnerClass(self): return self._my_inner_class @MyInnerClass.setter def MyInnerClass(self, value): self._my_inner_class = value # 构造函数,对应C#的Person构造方法 def __init__(self, name: str, my_inner_class: InnerClass): self.Name = name self.MyInnerClass = my_inner_class self.MyInnerClass.Car = "Mercedes"
简化实现(Python常用写法,效果等效)
如果不需要对属性的读写做额外校验,Python可以省略显式的property定义,直接绑定实例属性即可,代码更简洁:
class Person: class InnerClass: def __init__(self): self.Car = None def __init__(self, name: str, my_inner_class: InnerClass): self.Name = name self.MyInnerClass = my_inner_class self.MyInnerClass.Car = "Mercedes"
对应关系说明
- C#的嵌套类直接在Python外部类的内部定义即可,若要模拟C#默认私有嵌套类的语义,可给内部类名添加单下划线前缀作为私有约定标识
- C#的
{get;set;}自动属性在无额外逻辑的场景下,直接给Python实例绑定普通属性即可实现等效的读写功能 - C#的构造函数对应Python类的
__init__方法
内容的提问来源于stack exchange,提问作者Henry
相关产品推荐
相关产品推荐

