Python面向对象之成员修饰符

对于这些类成员有修饰符

之前定义字段country任何对象都可以访问,是公有的

可以定义为私用属性,只有类内部的方法可以调用,外部不能直接调用,但是可以间接调用

vim day7-10.py

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/python
# -*- coding:utf-8 -*-
 
class Foo(object):
 
    __country = "中国"
 
    def func(self):
        print Foo.__country
 
 
obj = Foo()
obj.func()

如果直接在外部调用Foo.__country会报错

同样在方法前面加两个下划线在类的外部的无法调用

PS:私有的方法只能内部访问,就算是继承也是无法调用访问的

 

可以在外部使用方法调用

vim day7-11.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/python
# -*- coding:utf-8 -*-
 
class Foo(object):
 
    __country = "中国"
 
    def __init__(self):
        self.__name = 'alex'
 
 
obj = Foo()
#obj.__name
print obj._Foo__name

  

PS:这种方法不推荐使用

  想使用就用间接方式应用

 

小结:

1,面向对象三大特性

  封装,继承,多态(python用不到)

2,python,封装

  a,多个方法公用一组变量,变量封装到对象中

  b,多个方法封装在一个类中

3,继承

  a,基类,派生类

  b,多继承

  c,新式类,经典类

  d,广度优先,深度优先

4,类,对象

5,类成员

  a,字段

          普通(保存在对象中) 静态(保存在内存中)

  b,方法

    普通方法     触发者:对象  至少一个self 参数

    类方法        触发者:类  只有一个cls 参数

    静态方法     触发者:类   任意参数

  c,属性(属性是对方法的变种,访问时和字段相似)

    @property  

     Data = property(方法名)

        #obj.Data = 执行方法并获取返回值

    新式类中属性

    @property      #设置属性

    @方法名.setter    #获取属性

    @方法名.deleter    #删除属性

6,类成员修饰符

  公有 私有(加两个下划线__,只能内部访问,也能强制访问,最好间接访问)

 

作业

1,计算器

2,游戏人生

   面向对象

 

练习 paramiko,configpaser

posted @   minseo  阅读(460)  评论(1编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示