python基础知识-封装

1. python封装三阶段:

第一阶段:将参数实例化到一个对象;  第二阶段:隐藏参数即私有参数;第三阶段:定义getter、setter方法,可以设定自己定义的规则

2. 私有属性和私有方法。用两个下划线开头表示私有,例如: __aaa。只能在类的内部调用,不能在类的外部调用

3. 示例:

# 封装的第一个阶段:

class User:
    def __init__(self,name,age,address,course,grade=None):# 如果保证每个参数不丢失,都有一个默认值   grade=None
        self.name=name
        self.age=age
        self.address=address
        self.course=course
        self.grade=grade

u=User("1",2,3,4,5)
print(u.name)

# 封装的第二个阶段: 将参数作为隐性

class User2:
    def __init__(self,name,age,address,course,grade=None):
        self.__name=name            #前边两个下划线,表示私有,希望参数不被修改.
        self.__age=age
        self.__address=address
        self.__course=course
        self.__grade=grade

    def __hai(self,msg):     #私有方法
        print(msg)

    __count=1

    def pub(self):
        print("pub")

print("=============u22")

u1=User2("uu2",2,3,4,5)
# print(u1.name)  #这个是获取不到的
print(u1._User2__name)   #前边一个下划线,表示私有访问
u1._User2__hai("---")
print(u1._User2__count)
u1.pub()


# 封装的第三个阶段: getter  setter

class User3:
    def __init__(self,name,age,address,course,grade=None):
        self.__name=name            
        self.__age=age
        self.__address=address
        self.__course=course
        self.__grade=grade
    def get_name(self):
        return self.__name
    def set_name(self,name):
        if isinstance(name,str):
            self.__name=name
        else:
            self.__name=str(name)

    def get_age(self):
        return self.__age
    def set_age(self,year):
        self.__age=2021-year

print("=============u1")

u3=User3("xiaowang",2,3,4,5)
# print(u3.name)  #这个是获取不到的
print(u3.get_name())
u3.set_name("xiaogang")
print(u3.get_name())

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值