python基础:面对对象的一些操作方法

一、在类的外部增加属性
方式: 对象名.属性名=值
注意:这种方式虽然简单,但是不推荐使用

class Person:
    def eat(self):
        print(self.name,'吃...')

person=Person()
person.name='zs'       给对象person又添加了一个name属性
person.eat()           #      zs 吃...

二、init()方法
init()内置方法在创建对象的时候自动执行。
我们可以在 init()中做一些初始化操作。

练习1:创建Cat类,在 init()方法中初始化name属性的值

class Cat:
    def __init__(self,name):
        print('init方法在创建对象时执行')
        self.name=name  #此方法执行完后,name被初始化,如果引用name将找不到该变量,需要给对象添加一个name属性
    def eat(self):
        print('猫吃老鼠...')
        print(self.name)

bule_cat=Cat('蓝猫')
bule_cat.eat()

black_cat=Cat('黑猫')
black_cat.eat()

运行结果:

init方法在创建对象时执行
猫吃老鼠...
蓝猫
init方法在创建对象时执行
猫吃老鼠...
黑猫

在这里插入图片描述
三、str()方法
打印对象的名称时默认调用的是__str__()方法,此方法默认返回的是对象的内存地址。
我们可以重写 str() 方法打印对象保存的信息。

class Cat:
    def __init__(self,name):
        print('此方法创建时将会执行')
        self.name=name

    def eat(self):
        print('虹猫蓝兔七侠传')
        print(self.name)
bule_cat=Cat('蓝猫淘气三千问')
bule_cat.eat()
print(bule_cat)        #打印的是bule_cat的id地址

运行结果:

此方法创建时将会执行
虹猫蓝兔七侠传
蓝猫淘气三千问
<__main__.Cat object at 0x000000000280D1D0>

加入__str__方法之后

class Cat:
    def __init__(self,name,age):
        print('此方法创建时将会执行')
        self.name=name       #创建self.name属性
        self.age=age            #创建self.age属性           
    def eat(self):
        print('虹猫蓝兔七侠传')
        print(self.name)
    def __str__(self):
        msg='{}是我童年的记忆,已经过去{}年了'.format(self.name,self.age)
        return msg      注意返回值,由bule_cat接收
bule_cat=Cat('蓝猫淘气三千问',20)
bule_cat.eat()
print(bule_cat)

运行结果:

此方法创建时将会执行
虹猫蓝兔七侠传
蓝猫淘气三千问
蓝猫淘气三千问是我曾经的记忆,已经过去20年了

猜你喜欢

转载自blog.csdn.net/weixin_44239541/article/details/86317604