面向对象01

1、面向对象
类:具有相同特征事物的抽象
对象:某个类的具象
2、语法
class 类名:
pass
定义类的关键字:class
类名:符合标识符命名规范,更多使用大驼峰
属性通过变量体现(动态添加),行为通过方法体现
成员访问:
属性:对象.属性名
方法:对象.方法名()
示例:
class Person: #定义类
def run(self): #行为通过方法体现
print(‘每天跑步’)
p=Person() #创建对象
p.name=‘zhangsan’ #属性是动态添加
print(p.name)
p.run() #调用成员方法
3、self
class Person:
def mingzi(self):
print(‘我叫{}’.format(self.name))
def run(self):
self.mingzi() #调用成员方法
print(‘我每天都运动’)
lisi=Person() #创建对象
lisi.name=‘李四’ #添加属性
lisi.run()
lisi=Person()
lisi.name=‘李四’
lisi.run()

4、str
class Person:
#没有重写此方法时,打印的是类名+地址
#重写此方法,打印的是该方法的返回值
def str(self):
return ‘我叫{},今年{}’.format(self.name,self.age)
lisi=Person() #创建对象
lisi.name=‘李四’
lisi.age=18
print(lisi) #打印对象时会调用str方法
s=str(lisi) #转换为字符串时会调用str方法
print(s)
5、init
class Dog:
def str(self):
return ‘name:{} age:{} color:{}’.format(self.name,self.age,self.color)
#构造方法,创建对象后,系统会自动调用该方式完成相关属性的初始化操作
def init(self,name,age,color):
self.name=name
self.age=age
self.color=color
dahuang=Dog(‘大黄’,2,‘yellow’)
print(dahuang)
6、del
class Pig:
#析构方法:当对象即将被释放时,系统会自动调用
#一般做资源释放操作
def del(self):
print(‘我叫佩琪’)
peiqi=Pig()
del peiqi
print(’*******’)
7、换牌
class Pai:
def init(self,color,num):
self.color=color
self.num=num
def str(self):
return ‘{}{}’.format(self.color,self.num)
P1=Pai(‘黑桃’,‘K’)
P2=Pai(‘红桃’,‘A’)
class Hand:
def init(self,Pai):
self.Pai=Pai
right=Hand(P1)
left=Hand(P2)
print(right)
class Person:
def init(self,name,right,left):
self.name=name
self.right=right
self.left=left
def show(self):
print(’{}手里面的牌’.format(self.name))
print(‘左手:{}’.format(self.right.Pai))
print(‘右手:{}’.format(self.left.Pai))
def change(self):
self.right.Pai,self.left.Pai=self.left.Pai,self.right.Pai
xiaoming=Person(‘小明’,right,left)
xiaoming.show()
xiaoming.change()
xiaoming.show()

执行结果
在这里插入图片描述
class Person:
def getattr(self, item): # item:要获取的属性名
# print(item)
return ‘******’
def setattr(self, key, value):#设置属性时触发
#key:设置的属性名 value:设置的属性值
self.dict[key]=value #手动保存
def delattr(self, item): #删除属性时自动触发
print(item)
if item in self.dict:
del self.dict[item]#手动删除
#self.dict.pop(item)
zhangsan=Person()
zhangsan.name=‘张三’
#print(zhangsan.name)
del zhangsan.name
#__dict__保存对象属性
print(zhangsan.dict)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值