前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中类的属性方法和私有化

python中类的属性方法和私有化

作者头像
刘金玉编程
发布2019-08-05 16:38:56
1.6K0
发布2019-08-05 16:38:56
举报
文章被收录于专栏:编程创造城市

知识回顾:

1.类。明白什么是类?如何定义类?

2.对象。什么是对象?如何使用对象?

3.类的方法的定义以及调用。

4.类的方法内部使用类的属性,调用了self参数,这个参数可以用其它的名字替换,但是表述类的对象的参数必须是类中方法的第一个参数。


本节知识视频教程

文字讲解开始:

一、类的属性和方法

1.类的属性

属性:类似于人的身高、职业、性别等称为属性。

注意:类的属性默认情况下是直接被开放出去,可以直接调用读取和赋值的。

2.类的方法

补充:在类的内部不同方法之间是可以调用类的同一个属性的。

举例:

def sayHello(self):

print("hello,"+self.name)

二、类中属性方法的私有化

1.私有化的概念理解

私有化往往其实就是指只能被某些特定的对象调用。

2.类的方法的私有化

其实私有化只需要在方法名前加两个下划线即可,举例:

def __sayHello(self):

print("hello,"+self.name)

而实际上,这种类型的私有化并不是绝对不能被调用的,我们可以采用类的名称前加一个下划线以及定义的整个私有方法名的拼接组合成一个新的方法名称就可以调用。举例:

p._Person__sayHello()

提问:为什么私有化的类可以被调用呢?

在python中,私有化的类方法在被编译的时候,实际上就是在这个方法名称前面拼接了下划线和类的名称。

提问:私有化的调用方式如何知道的呢?

使用inspect库的getmembers方法可以访问到类中的成员与方法。

import inspect

methods=inspect.getmembers(p,predicate=inspect.ismethod)

print(methods)

注意点:inspect.getmembers(类的对象,刷选依据)

3.分析结论:

无论是类的方法还是类的属性,只要在方法或者属性名称前面加上两个下划线,那么就会被python编译器自动私有化,会在这个名称前面加上一个_类的名称。

三、总结强调

1.掌握类的属性的定义和调用

2.掌握类的方法的定义和调用

3.掌握类的属性和方法的私有化

4.掌握使用inspect库来查看类的所有的属性和方法的成员。

本节源代码:

代码语言:javascript
复制
class Person:
    #定义类的方法
    def setName(self,name):
        self.__name=name
    def getName(self):
        return self.__name
    def __sayHello(self):
        print("hello,"+self.__name)
p=Person()
p.setName("老刘")
print(p.getName())
p.setName("刘金玉")
print(p.getName())
#直接设置类的属性
p.__name="老张"
print(p.getName())
#直接读取类的属性
print(p.__name)
p._Person__sayHello()

import inspect
methods=inspect.getmembers(p)
print(methods)

【Python图书】

相关文章:

  1. python应用场景有哪些?岗位工资如何?
  2. 开始了解python语言吧!
  3. 入手一门编程语言,一起初识Python
  4. html中的<!DOCTYPE html>起到什么作用?前端面试经常考到
  5. python中类和对象
  6. python中函数递归VS循环
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程创造城市 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档