#面向对象理解
#定义一个cat类
#类包含两个基本的要素属性和方法,属性可以理解为变量,方法可以理解为函数
class cat:
def set_name(self,name):
self.name=name #self.name中的name代表类中的属性,第二个name为形参
def eat(self):
print("%s我吃鱼了"%self.name)
def sleep(self):
print("我困了")
a=cat() #实例化
a.set_name("tom")
a.eat()
#类方法的设计
class dog:
def __init__(self,name='wang',age=10):
self.name=name
self.age=age
def set_name(self,name):
self.name = name
def get(self):
return self.name
def set_age(self,age):
self.age = age
def get_age(self):
return self.age
c=dog()
print(c.get())
# str方法的应用
# demo1为未使用str
# demo2为使用str
class demo1:
def __init__(self,name="张三"):
self.name=name
def get_name(self):
return self.name
class demo2:
def __init__(self, name="张三"):
self.name = name
def __str__(self):
return self.name
a=demo1()
print(a) #打印结果为对象内存地址
b=demo2()
print(b) #打印结果为张三
# 使用类做一个计算器
class calc:
def __init__(self,oper = '+'):
self.oper = oper
def calc(self,a,b):
if self.oper =='+':
return a+b
elif self.oper == '-':
return a - b
elif self.oper == '*':
return a * b
elif self.oper == '/':
if b==0:
return None
else:
return a / b
else:
return None
demo = calc("/")
print(demo.calc(1,0))
#继承案列
# 多级继承
class animal:
def eat(self):
print("吃")
def sleep(self):
print("睡")
class dog(animal):
def kanjia(self):
print("看家")
class fish(animal):
def swimming(self):
print("游泳")
class tugou(dog):
def maimeng(self):
print("卖萌")
a=tugou()
a.kanjia()
#类属性和类方法
class dog:
name='小狗'
@classmethod
def set_name(cls,name):
cls.name=name
print(dog.name)
dog.set_name(12)
print(dog.name)
python入门—面向对象案列
最新推荐文章于 2024-09-17 23:15:58 发布