python面向对象二

这篇博客介绍了Python面向对象编程中的几个关键方法:__del__用于对象销毁时执行操作,__str__用于打印对象时的定制输出。通过实例展示了如何定义和使用这些方法,包括类属性的获取与设置,以及一个简单的计算器设计案例。
摘要由CSDN通过智能技术生成
# __del__方法,当对象在内存中销毁的时候自动调用,且不允许有别的参数,只能有self
# 若无该方法,对象也会销毁,不过同时没有代码被执行
# 定义__del__方法
class 类:
    def __del__(self):
        pass

# **********************************************

class cat:
    def __init__(self,name = 'tom'):
        self.name = name
    def show_name(self):
        print(self.name)
    def __del__(self):
        print(self.name + '销毁')
c = cat()
c.show_name()

def my_test():
    c1 = cat('小猫')
    c1.show_name()
my_test() #程序的第一条执行语句,调用函数
c = cat() #c是对象同时也是变量
c.show_name()

# **********************************************

# get_属性名 有返回值的方法
class cat:
    def __init__(self, name = 'john'):
        self.name = name
        # 只是把name返回给调用者
    def get_name(self): #get_得到一个name属性值
        return self.name
    def set_name(self,name1): #set_设置一个name1属性值(一般带有形参name1)
        self.name = name1
    def show_name(self):
        print(self.name)

c = cat() #结果为john
print(c.get_name()) #结果为john
print(c.show_name()) #结果为空,无数据
c1 = cat('mike')
print(c1.get_name()) #结果为mike

# **********************************************

class dog:
    def __init__(self,name = '秋田',age = 2):
        self.name = name
        self.age = age
    def set_name(self,name):
        self.name = name
    def get_name(self):
        return self.name
    def show_name(self):
        print(self.name)
    def set_age(self,age):
        self.age = age
    def get_age(self):
        return self.age
    def show_age(self):
        print(self.age)

d = dog('哈士奇',3)
print(d.get_name())
d.set_name('斗牛犬')
print(d.get_name())
d.show_name()


# **********************************************

# __str__方法,把对象放在print中显示,只用self参数,必须有return且返回字符串
# __str__的作用,当把含有该方法的对象放到print中,则print函数会显示str方法的return字符串
class demo:
    def __init__(self, a = 'nihao'):
        self.a = a
    def __str__(self):
        return self.a
d = demo()
print(d) #nihao  输出属性a

class fish:
    def __str__(self):
        return '我就是要返回的那个字符串'
f = fish()
print(f)


# **********************************************

# 计算器设计案例
class calc:
    # 定义属性oper
    def __init__(self,oper = '+'): #缺省值给+
        self.oper = oper
        # 定义calc1方法
    def calc1(self,a,b):
        if self.oper == '+':
            return a + b
        elif self.oper == '-':
            return a - b
        elif self.oper == '*':
            return a * b
        elif self.oper == '/':
            # 判断b是否为0
            if b != 0:
                return a / b
            else:
                return '被除数不能为0'
        else:
            return '数据错误'

c = calc() #实例化类calc
print(c.calc1(2,3)) #默认执行a+b

c = calc('*')
print(c.calc1(8,6))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值