吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1488|回复: 16
收起左侧

[求助] Python3 学习到类和对象,按照代码执行出错,求大神看看哪里错了

[复制链接]
星星仙人QAQ 发表于 2021-1-9 00:41
#!/usr/bin/python3

#类定义
class people:
    #定义基本属性
    name = ''
    age = 0
    #定义私有属性,私有属性在类外部无法直接进行访问
    __weight = 0
    #定义构造方法
    def __init__(self,n,a,w):
        self.name = n
        self.age = a
        self.__weight = w
    def speak(self):
        print("%s 说: 我 %d 岁。" %(self.name,self.age))

#单继承示例
class student(people):
    grade = ''
    def __init__(self,n,a,w,g):
        #调用父类的构函
        people.__init__(self,n,a,w)
        self.grade = g
    #覆写父类的方法
    def speak(self):
        print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))

# 实例化类
s = student('ken',10,60,3)
s.speak()

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
石碎大胸口 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

古月不傲 发表于 2021-1-9 01:21
Screenshot from 2021-01-09 01-20-25.png

运行正常阿
张大炮xmz 发表于 2021-1-9 02:00
子类的构造函数中调用的父类的构造函数中需要加self吗?
people.__init__(self,n,a,w)
我也是刚学,看到这里有些奇怪,问一下
OwO 发表于 2021-1-9 07:32
5ud0 发表于 2021-1-9 08:17
没问题,可以正常运行
头像被屏蔽
cy5520 发表于 2021-1-9 08:37
提示: 作者被禁止或删除 内容自动屏蔽
坏小子69 发表于 2021-1-9 09:04
张大炮xmz 发表于 2021-1-9 02:00
子类的构造函数中调用的父类的构造函数中需要加self吗?
people.__init__(self,n,a,w)
我也是刚学,看到 ...

使用 people 调用父类构造函数是需要加上 self
[Python] 纯文本查看 复制代码
people.__init__(self, n, a, w)

平常调用父类函数 使用的是 super(),不需要 self
[Python] 纯文本查看 复制代码
super().__init__(n, a, w)

Cool_Breeze 发表于 2021-1-9 09:34
[Python] 纯文本查看 复制代码
# coding=utf-8
#!/usr/bin/env python3

#类定义
class people:
    #定义基本属性
    name = ''
    age = 0
    #定义私有属性,私有属性在类外部无法直接进行访问
    __weight = 0
    #定义构造方法
    def __init__(self,n,a,w):
        self.name = n
        self.age = a
        self.__weight = w
    def speak(self):
        print("%s 说: 我 %d 岁。" %(self.name,self.age))

#单继承示例
class student(people):
    grade = ''
    def __init__(self,n,a,w,g):
        #调用父类的构函
        # people.__init__(self,n,a,w)
        # super(student, self).__init__(n,a,w) # 直接使用 super
        super().__init__(n,a,w) # 直接使用 super 单继承
        self.grade = g
    #覆写父类的方法
    def speak(self):
        print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))

# 实例化类
s = student('ken',10,60,3)
s.speak()
144728995505 发表于 2021-1-9 10:09
想看看报错
Aircus 发表于 2021-1-9 10:21
name = ''
age = 0
grade = ''
没啥问题,只是这些定义完全可以去掉
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 04:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表