为了账号安全,请及时绑定邮箱和手机立即绑定

【2023年】第48天 私有函数(变量)

标签:
Python

一、私有函数(变量)

  • 无法被实例化后的对象调用的类中的函数与变量
  • 类内部可以调用私有函数与变量
  • 只希望类内部业务调用使用,不希望被使用者调用。
  • 在变量或函数前添加_(2个下横线),变量或者函数名后无需添加。
class Person(object):
	def __init__(self, name):
		self.name = name
		self.__age = 33
	def dump(self):
		print(self.name, self.__age)
	def __cry(self):
		return 'I want cry'
  • 上述代码中的age虽然是私有的,但是我们依然可以通过self调用。
# coding:utf-8

class Cat(object):
    __cat_type = 'cat'

    def __init__(self, name, sex):
        self.name = name
        self.__sex = sex

    def run(self):
        result = self.__run()
        print(result)

    def __run(self):
        return f'{self.__cat_type}, 小猫 {self.name} {self.__sex}开学的奔跑'

    def dump(self):
        result = self.__dump()
        print(result)

    def __dump(self):
        return f'{self.__cat_type} 小猫 {self.name} {self.__sex} 开学的跳着'

cat = Cat(name='小谬', sex='boy')
cat.run()
cat.dump()
print(dir(cat))
print(cat._Cat__dump())
print(cat._Cat__cat_type)
  • 涉及私有函数和私有属性的构造。

二、python中的封装

  • 将不对外的私有属性或方法通过可对外使用的函数而使用(类中定义私有的,只有类内部使用,外部无法访问)
  • 这样做的主要原因:保护隐私,明确区分内外。
# coding:utf-8

class Parent(object):

    def __hello(self, data):
        print('hello %s' % data)

    def helloworld(self):
        self.__hello('world')


if __name__ == '__main__':
    p = Parent()
    p.helloworld()
    
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消