首页 > 其他 > 详细

面向对象编程 - 实例的增删改查(数据属性和函数属性)

时间:2020-04-24 18:32:25      阅读:86      评论:0      收藏:0      [点我收藏+]
class Chinese:
    country=China
    def __init__(self,name):
        self.name=name

    def play_ball(self,ball):
        print(%s 正在打%s %(self.name,ball))
##实例的数据属性的增删改查
p1=Chinese(alex)
print(p1.__dict__)              #{‘name‘: ‘alex‘}

#查看
print(p1.name)                  #alex
print(p1.play_ball(篮球))     #alex 正在打篮球    None

#增加
p1.age=20
print(p1.__dict__)          #{‘name‘: ‘alex‘, ‘age‘: 20}
print(p1.age)               #20

#不要修改底层的属性字典
# p1.__dict__[‘sex‘]=‘male‘
# print(p1.__dict__)
# print(p1.sex)

#修改
p1.age=12
print(p1.__dict__)          #{‘name‘: ‘alex‘, ‘age‘: 12}
print(p1.age)               #12

#删除
del p1.age
print(p1.__dict__)          #{‘name‘: ‘alex‘}


##实例的函数属性的增删改查

p1 = Chinese(‘alex‘)


# print(p1.__dict__) # {‘name‘: ‘alex‘}
#
# # 查看
# print(p1.name) # alex
# print(p1.play_ball(‘篮球‘)) # alex 正在打篮球 None
#
# # 增加
# p1.age = 20
# print(p1.__dict__) # {‘name‘: ‘alex‘, ‘age‘: 20}
# print(p1.age) # 20
# # =======================================================
# # 不要修改底层的属性字典
# # p1.__dict__[‘sex‘]=‘male‘
# # print(p1.__dict__)
# # print(p1.sex)
# # ======================================================
# # 修改
# p1.age = 12
# print(p1.__dict__) # {‘name‘: ‘alex‘, ‘age‘: 12}
# print(p1.age) # 12
#
# # 删除
# del p1.age
# print(p1.__dict__) # {‘name‘: ‘alex‘}


# 实例的函数属性的增删改查
# 查
p1.play_ball(‘篮球‘) # alex 正在打篮球


# 增加
def study(self, lesson):
print(‘%s正在上%s‘ % (self.name, lesson))
#
#
p1.study = study
# p1.study(‘英语课‘)
# # 报错, 原因用实例创建的函数属性和类创建的函数属性不同, 类可以不输入self程序自动输入,而实例创建的必须手动输入
p1.study(p1, ‘英语课‘) # alex正在上英语课

# 修改
#  实际上修改就是增加
def play_ball(self, ball):
print(‘%s不喜欢%s‘ % (self.name, ball))
#
#
p1.play_ball = play_ball
p1.play_ball(p1, ‘篮球‘) # alex不喜欢篮球
Chinese.play_ball(p1, ‘篮球‘) # alex 正在打篮球
# 实例已经不能调用类属性的函数属性了,因为实例里面有自己的函数属性 ,类的函数属性修改还是需要在类下面操作

# 删除

del play_ball
p1.play_ball(‘篮球‘)# 报错 实例下面没有就报错, 不能铲除类的函数属性
def play_ball(self, ball):
print(‘%s不喜欢%s‘ % (self.name, ball))


p1.play_ball = play_ball

print(p1.__dict__)
p1.play_ball(p1, ‘篮球‘) # alex不喜欢篮球
del p1.play_ball # 只写play_ball 无效, 不能区分类下的,还是实例下的play_ball
print(p1.__dict__)


 

 

面向对象编程 - 实例的增删改查(数据属性和函数属性)

原文:https://www.cnblogs.com/vincent-sh/p/12768433.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!