Python OOP中Book类No_Pages方法缺少位置参数报错排查
问题解决
报错原因
No_Pages方法参数冗余:你已经在初始化时把Words和Font_size存入实例属性中,调用该方法无需再传入这两个参数,不传就会触发参数缺失报错。- 初始化参数顺序错误:你创建实例时写的
Book(300,12),但__init__方法的参数顺序是Font_size在前、Words在后,导致实际赋值时Font_size=300、Words=12,完全和预期相反。 - 多余的
pass语句:这些pass没有实际作用,属于冗余代码。
修正后的代码
class Book(): # 调整参数顺序,匹配你传参的逻辑:先Words后Font_size def __init__(b1, Words=300, Font_size=12): b1.Words = Words b1.Font_size = Font_size # 移除多余参数,直接调用实例自身的属性计算页数 def No_Pages(b1): # 用//得到整数页数,保留小数的话换成/即可 return b1.Words // b1.Font_size cyn_Book = Book(300,12) print(cyn_Book.Font_size) print(cyn_Book.Words) print(cyn_Book.No_Pages())
运行结果
12 300 25
注:你提到预期页数为15,按当前Words/Font_size的逻辑,300÷12=25。如果要得到15,要么把Font_size改为20(比如Book(300,20)),要么调整No_Pages的计算公式(比如你可能想以Font_size关联每页容量,需要补充对应逻辑)。
内容的提问来源于stack exchange,提问作者python-trude19
相关产品推荐
相关产品推荐

