per = Person('lisi', 18) # 创建一个实例 print(per.gongTong)#访问类的变量 print(Person.gongTong)#访问类的变量 print(per.info())#实例 per 调用 info 方法 per2 = Person()# print(per2.setName('lisi')) print(per2.setAge('25'))
时间: 2024-03-15 18:43:46 浏览: 93
这是一个使用 Python 语言定义一个 Person 类,并创建了两个 Person 类的实例 per 和 per2,其中 per 指定了姓名和年龄,而 per2 则没有指定姓名和年龄。
代码中使用了类变量 gongTong,它可以被 Person 类和类的实例 per 访问,因为它是一个类级别的变量。而 info() 方法是一个实例方法,它可以被类的实例 per 调用。
setAge() 和 setName() 方法也是实例方法,它们返回设置后的年龄和姓名,并且需要通过类的实例 per2 来调用。但是代码中并没有实例化 per2,所以这里调用 setAge() 和 setName() 方法会出错。
相关问题
class Person: def __init__(self,name,PID,sex,age): self.name=name self.PID=PID self.sex=sex self.age=age def getname(self): return self.name def getPID(self): return self.PID def getsex(self): return self.sex def getage(self): return self.age def getinfo(self): return self.name,self.PID,self.sex,self.age def setname(self,name): self.name=name def setID(self,PID): self.PID=PID def setsex(self,sex): self.sex=sex def setage(self,age): self.age=agedef setinfo(self,name,PID,sex,age): self.name=name self.PID=PID self.sex=sex self.age=age class Ustudent(Person): #重写构造函数 def __init__(self,name,PID,sex,age,school): super().__init__(name,PID,sex,age) self.school=school def getschool(self): return self.school #重写 getinfo 函数 def getinfo(self): return self.name,self.PID,self.sex,self.age,self.school #重写 setinfo 函数 def setinfo(self,name,PID,sex,age,school): #self.name=name #self.PID=PID #self.sex=sex #self.age=age super().setinfo(name,PID,sex,age) def setschool(self,school): self.school=school p=Person("zjhong","3307217305256314","M",19) print(p.getinfo()) s=Ustudent("zjh","3307217305256313","M",20,"湖州师院学院") p.setinfo("zhangjh","3307217305256315","F",18) print(s.getinfo()) print(p.getinfo()) s.setinfo("zhangjianh","3307217305256316","F",21,"湖州学院") print(s.getinfo()) #调用父类继承函数 setname s.setname("lisi") s.setschool("湖州师范学院") print(s.getinfo()) print(p.getinfo())
这段代码定义了两个类:Person和Ustudent,Person类有name、PID、sex、age属性和getinfo、setinfo、getname、getPID、getsex、getage方法,Ustudent类继承了Person类,并新增了school属性和getschool、setschool方法。代码中还进行了一些属性设置和方法调用的操作,你想问什么问题呢?
帮我查看一下错误:class Person(object): def __init__(self,id, name, age): self.id = id self.name = name self.age = age def doing(self): print(f"学号:{self.id},姓名:{self.name},年龄:{self.age}") ok = Person(1,"zhangsan",18) ko=Person(2,"lisi",20) ok.doing()
这段代码存在一个缩进错误,具体来说,在类定义结束之后,应该有一个空行,然后是函数定义,函数定义应该缩进一个层次。修改后的代码如下:
```
class Person(object):
def __init__(self, id, name, age):
self.id = id
self.name = name
self.age = age
def doing(self):
print(f"学号:{self.id}, 姓名:{self.name}, 年龄:{self.age}")
ok = Person(1, "zhangsan", 18)
ko = Person(2, "lisi", 20)
ok.doing()
```
请注意修改后代码中的空格和缩进。
阅读全文