class People(): name = "人" def __init__(self, n="非洲人"): self.name = n print("我是构造函数", self.name) def __del__(self): print("我是析构函数", self.name) zhangsan = People() lisi = People("欧美人") zhangsan.__del__() print(zhangsan) del zhangsan的详细意思
时间: 2023-05-11 10:01:57 浏览: 144
这段代码定义了一个名为 People 的类,其中包含一个构造函数和一个析构函数。构造函数会在创建类的实例时被调用,析构函数则会在实例被销毁时被调用。在代码中,创建了两个 People 类的实例,分别为 zhangsan 和 lisi。其中,zhangsan 的 name 属性默认为 "非洲人",lisi 的 name 属性为 "欧美人"。调用了 zhangsan 的析构函数,并删除了 zhangsan 的实例。print(zhangsan) 会输出 None,因为 zhangsan 已经被删除了。
相关问题
class People: def __init__(self,name): self.name = name def work(self): print(self.name,'在工作') class Teacher(People): def __init__(self,name,salary,tel): super().__init__(name,salary,tel) self.salary = salary self.tel = tel def work(self): super().work() print(self.name,'在授课') def play(self,sport): print(self.name,'在',sport) if __name__== '__main__': t = Teacher('张三丰','男','15566668888') t.work() t.play('打篮球')
这是一个简单的 Python 类继承的例子,其中定义了一个 People 类和一个继承自 People 类的 Teacher 类。People 类有一个初始化方法 __init__(),用于初始化人的名字 name,而 Teacher 类在继承 People 类的基础上,增加了薪水 salary 和电话号码 tel 两个属性,并重写了 work() 方法和新增了 play() 方法。在主函数中,创建了一个 Teacher 的实例 t,并调用了它的 work() 和 play() 方法。其中,work() 方法被重写,覆盖了 People 类中的同名方法,同时也调用了父类的 work() 方法。play() 方法则是 Teacher 类新增的方法,用于打印老师正在进行的运动。
class People: def __init__(self, name, city): self.name = name self.city = city def __str__(self): return "{}: {}".format(self.name, self.city) def moveto(self, newcity): self.city = newcity p1 = People("Tom", "New York") p2 = People("Jerry", "Paris") p3 = People("Alice", "London") p4 = People("Bob", "Beijing") people_list = [p1, p2, p3, p4] people_list.sort(key=lambda x: x.city) for p in people_list: print(p) 解释一下此代码
这段代码定义了一个名为People的类,表示一个人,每个人有一个名字和所在城市。类中有一个__str__方法,返回一个字符串,描述这个人的名字和所在城市。还有一个moveto方法,可以将这个人的所在城市改为新的城市。
在主程序中,创建了四个People对象,并将它们放入一个列表中。使用sort函数,按照每个人所在城市的字母顺序对人进行排序。然后遍历人的列表,打印每个人的描述字符串,这些字符串按照城市字母顺序排列。
阅读全文