def buttonAddClick(self): # 检查姓名 name = self.sName.get().strip() if name == '': tkinter.messagebox.showerror(title='很抱歉', message='必须输入姓名') return # if btn_text.get() == '添加': # 获取选择的性别 sex = self.sSex.get() if sex not in ('男', '女'): tkinter.messagebox.showerror(title='很抱歉', message='性别不合法') return解释每一句代码含义
时间: 2024-02-14 18:32:46 浏览: 402
这是一个 tkinter 界面程序中的一个按钮点击事件处理函数。它包含以下几个步骤:
1. 获取姓名输入框中的文本内容并去除两端的空白字符。如果姓名为空(即用户没有输入姓名),则弹出一个错误对话框提示用户必须输入姓名,并且中断后续操作。
2. 获取性别选择框中选中的选项。如果选项不是“男”或“女”,则弹出一个错误对话框提示用户性别不合法,并且中断后续操作。
3. 如果以上两个步骤都没有中断后续操作,那么说明用户输入的姓名和性别都合法,可以进行下一步处理。
相关问题
class BMI: def __init__(self, name, age, height, weight): self.name = sName self.age = iAge self.height = int(fHeight) self.weight = int(fWeight) def getBMI(self, set, height, weight): self.set = int(self.weight*self.weight/self.height/self.weight) return set
根据你提供的代码,我发现 getBMI 方法不需要传递 set、height 和 weight 这些参数。因为在类的 __init__ 方法中已经初始化了这些属性,所以在 getBMI 方法中直接使用即可。
修改后的代码如下:
```python
class BMI:
def __init__(self, name, age, height, weight):
self.name = name
self.age = age
self.height = int(height)
self.weight = int(weight)
def getBMI(self):
bmi = int(self.weight * self.weight / self.height / self.weight)
return bmi
```
在这个修改后的代码中,getBMI 方法不需要接受任何参数,直接计算 BMI 并返回即可。同时,我也对 __init__ 方法做了一些修改,使其按照参数名初始化属性。
希望这个修改后的代码可以解决你的问题。如果你还有其他问题,请随时向我提问。
输入class Student: __School="湖州师范学院" def __init__(self,sname,sno,ssex,sage): self.__sname=sname self.__sno=sno self.__ssex=ssex self.__sage=sage def getschool(self): return self.__School def getname(self): return self.__sname def getsno(self): return self.__sno def getsex(self): return self.__ssex def getsage(self): return self.__sage print(Student.getschool()) s=Student("zhangsan","2022082201","F",19) print(s.getschool()) print(s.__sname) print(s.getname(),s.getsno(),s.getsex(),s.getsage())
这是一个定义了学生类的代码,并创建了一个学生对象s。在这个代码中,类属性__School是私有的,实例属性__sname、__sno、__ssex和__sage也是私有的。此外,该类还提供了一些公有方法来获取私有属性的值。以下是代码的输出结果:
湖州师范学院
湖州师范学院
Traceback (most recent call last):
File "<stdin>", line 11, in <module>
AttributeError: 'Student' object has no attribute '__sname'
在第一行中,通过调用类方法getschool()来获取类属性__School的值。在第二行中,通过调用对象方法getschool()来获取实例属性__sname的值。在第三行中,试图直接输出s对象的私有属性__sname的值,但会出现错误。在最后一行中,通过调用对象的公有方法来获取私有属性的值,并成功输出了学生对象s的属性值。
阅读全文