作业二:面向对象self用法 init函数的用法 成员函数的调用

本文介绍了Python面向对象编程的基础概念,包括self的使用,它在类的方法中代表调用该方法的对象;__init__构造函数的用途,用于初始化类的实例并设置属性;以及成员函数的定义和调用。通过示例代码详细解释了这些概念,并展示了如何在实际编程中应用。
摘要由CSDN通过智能技术生成

1.self的用法

self指的是调用该函数的对象(是一个实例)。Python中self等价于Java中的this。首先明确的是self只有在类中的方法中才会有,独立的函数或方法是不必带有self的。

# self代表类的实例,而非类

class TestDemo():

    # 可将self理解为实例td

    def testFn(self):

        print(f"谁调用我,我就是谁,此时调用我的是{self}")

        # 实例调用\_\_class\_\_属性时会指向该实例对应的类

        print(f"我是按照{self.\_\_class\_\_}创建出来的")

# td为TestDemo的实例

td = TestDemo()

# 在类中方法的形参中,self参数一定要定义,但是在调用时会自动传入。

td.testFn()

2.init函数的用法

在Python中定义类经常会用到__init__函数(方法),首先需要理解的是,两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问。而__init__函数(方法)支持带参数类的初始化,也可为声明该类的属性(类中的变量)。__init__函数(方法)的第一个参数必须为self,后续参数为自己定义。从文字理解比较困难,通过下面的例子能非常容易理解这个概念:例如我们定义一个Box类,有width, height, depth三个属性,以及计算体积的方法:

class Box:

    def setDimension(self, width, height, depth):

        self.width = width

        self.height = height

        self.depth = depth

    def getVolume(self):

        return self.width * self.height * self.depth

b = Box()

b.setDimension(10, 20, 30)

print(b.getVolume())

class Box:

    #def setDimension(self, width, height, depth):

    #   self.width = width

    #   self.height = height

    #   self.depth = depth

    def __init__(self, width, height, depth):

        self.width = width

        self.height = height

        self.depth = depth

    def getVolume(self):

        return self.width * self.height * self.depth

b = Box(10, 20, 30)

print(b.getVolume())

3.成员函数

类中除构造函数__init__()以外自定义的方法

1、成员函数的函数名可以自定义,但是构造函数的函数名是固定的,为__init__

2、成员函数需要手动被调用,但是构造函数在创建对象的过程中是自动被调用的

3、对于用一个对象而言,成员函数可以被调用多次,但是构造函数只能被调用一次

class Student:

    #成员变量

    def __init__(self):

        self.name=None

        self.gender=None

    #成员方法: self 仅在声明时占位, 无需传递具体参数

    def play(self):

        print(self.name+'的性别 '+self.gender+",他在玩电脑!")

    def study(self):

        print(self.name+'的性别 '+self.gender+",他在看书!")

# #创建对象

stu =Student()

#赋值

stu.name='mike'

stu.gender='Woman'

#调用方法

stu.play()

stu.study()

class Student:

    #成员变量

    def __init__(self):

        self.name=None

        self.gender=None

    #成员方法带参数: self 仅在声明时占位, 无需传递具体参数

    def play(self,thing):

        print(f'{self.name}的性别-{self.gender},他正在玩{thing}')

    def study(self,thing='java'): # 默认形参

        print(f'{self.name}的性别-{self.gender},他正在看{thing}')

#创建对象

stu =Student()

#赋值

stu.name='samantha'

stu.gender='Woman'

#调用方法

stu.play('电脑')

stu.study('书')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值