首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python】面向对象 - 封装 ② ( 访问私有成员 | 对象无法访问私有变量 方法 | 类内部访问私有成员 )

一、访问私有成员 1、对象无法访问私有变量 在下面的 Python 类 Student 中 , 定义了私有的成员变量 , # 定义私有成员 __address = None 该私有成员变量..., 只能在类内部进行访问 , 类的外部无法进行访问 ; 在 类外部 创建的 Student 实例对象 , 是无法访问 __address 私有成员的 ; 使用 实例对象 访问 类的私有成员 , 编译时不会报错...__address) 访问 s1 实例对象 的 __address 成员 , 会报如下错误 ; 代码示例 : """ 面向对象 - 封装 """ # 定义 Python 类 class Student...Tom 18 Process finished with exit code 1 2、对象无法访问私有方法 在类中 定义私有成员方法 # 定义私有成员方法 def __say(self...AttributeError: 'Student' object has no attribute '__say' Process finished with exit code 1 3、类内部访问私有成员

25920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C++】静态成员函数 ( 静态成员函数概念 | 静态成员函数声明 | 静态成员函数访问 | 静态成员函数只能访问静态成员 )

    , 也不能在 静态成员函数 中访问 普通的 成员变量 和 成员函数 ; 2、静态成员函数声明 静态成员函数声明 : 使用 static 关键字 修饰 成员函数 , 就可以将 普通的成员函数 转为 静态成员函数...public: static void fun() { cout << "静态成员函数被调用 : number = " << number << endl; } }; 3、静态成员函数访问 静态成员函数访问...: 使用 类名 和 域操作符 访问 : // 通过 类名:: 调用 静态成员函数 Student::fun(); 使用 对象 访问 : // 通过 对象....调用 静态成员函数 s.fun(); 4、静态成员函数只能访问静态成员 静态成员函数内容要求 : 静态成员函数 只能访问 静态成员变量 其他静态成员函数 静态成员函数 不能访问 非静态成员变量 非静态成员函数..., 普通的 成员变量 和 成员函数 , 需要 通过 类 的 实例对象 来访问 , 需要 依托于 对象才能存在 , 而 静态成员函数 可以在 不创建 实例对象的前提下被调用 , 因此 静态成员函数中 不能访问

    1K20

    【Groovy】Groovy 方法调用 ( 使用 对象名.成员访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名 访问成员 )

    文章目录 一、使用 对象名.成员访问 Groovy 类的成员 二、使用 对象名.'...成员名' 访问 Groovy 类的成员 三、使用 对象名['成员名'] 访问 Groovy 类的成员 四、完整代码示例 一、使用 对象名.成员访问 Groovy 类的成员 ---- 对 对象名.成员名...‘成员名’ 访问 Groovy 类的成员 ---- 可以使用 对象名....‘成员名’ 访问 Groovy 类的成员 , 这样写的好处是 , 不用将代码写死 , 在运行时可以自由灵活的决定要访问哪个成员 ; 如 : 从配置文件中获取要访问哪个成员 , 或者从服务器端获取要访问成员...age' 执行结果 : Han 32 三、使用 对象名[‘成员名’] 访问 Groovy 类的成员 ---- 使用 对象名[‘成员名’] 访问 Groovy 类的成员 , 相当于调用类的 getAt 方法

    2.3K20

    Super访问父类成员

    1 问题 当子类的成员变量方法与父类同名时,可能模糊不清,应该怎么解决?如果子类重写了父类的某一个方法,我们又该怎么调用父类的方法?...创建一个父类Person,并有属性年龄: 创建一个子类Student,具有和父类相同的属性: 测试类: super调用成员方法: 当父类和子类都具有相同的方法名时,可以使用 super 关键字访问父类的方法...void main(String args[]) { Student s = new Student(); s.display(); } } 3 结语 针对super访问父类成员问题...,通过实验,当子类的成员变量方法与父类同名时,可以使用 super 关键字来访问。...在以前的学习中,不清楚super的用法,本次实验让我们深刻理解到super在访问父类成员属性以及方法时的作用。

    9710

    Super访问父类成员

    1 问题 当子类的成员变量方法与父类同名时,可能模糊不清,应该怎么解决?如果子类重写了父类的某一个方法,我们又该怎么调用父类的方法?...创建一个父类Person,并有属性年龄: 创建一个子类Student,具有和父类相同的属性: 测试类: super调用成员方法: 当父类和子类都具有相同的方法名时,可以使用 super 关键字访问父类的方法...void main(String args[]) { Student s = new Student(); s.display(); } } 3 结语 针对super访问父类成员问题...,通过实验,当子类的成员变量方法与父类同名时,可以使用 super 关键字来访问。...在以前的学习中,不清楚super的用法,本次实验让我们深刻理解到super在访问父类成员属性以及方法时的作用。

    12710

    静态成员函数访问非静态数据成员【C++】

    然而,静态成员函数不属于对象,无this指针。所以静态成员函数不能访问类的默认非静态成员(非静态成员函数和非静态数据成员)。...举例说明一种静态成员函数访问非静态数据成员的方式: #include using namespace std; class Point { public: Point(int...//静态成员函数的类外定义 参数表中创建对象 cout << "x=" << m.x << endl; //静态<em>成员</em>函数通过对象<em>访问</em>非静态数据<em>成员</em> cout << "y=" <...只要对静态数据<em>成员</em>的值更新一次,就可以保证所有对象都会存取更新后的值 由本例可知:静态<em>成员</em>函数不能引用本类非静态<em>成员</em>并非绝对,只是不可以进行默认的<em>访问</em>,因为编译器不知道应该去寻找哪一个对象。...若必须要<em>访问</em>,则有两种方式,且一般使用第二种居多。 对象名 . 非静态<em>成员</em> ; 类名 :: 非静态<em>成员</em> ; 故:实例化对象即可完成对非静态数据<em>成员</em>的<em>访问</em>

    1.3K20

    无法访问Google

    因为众所周知的原因,我们在访问Google、Facebook、Twitter等网站时会受到一些限制。...面对这样的窘境,人们要么不再访问转投其他互联网服务,要么采取技术手段绕过封杀譬如V**、访问外国网站软件。...其微博公布的诉讼状显示,从5月开始通过中国联通的网络无法访问Google、Gmail等服务,要求中国联通返还宽带费用,并在解决此问题之前不再收取任何宽带费用。...庭审结果想必大家都能猜到,汪龙微博透露,被告代理律师在法庭上承认他们在律师事务所内使用电信的宽带也无法登陆Google,随后审判员作出结论:Google封锁与联通无关。...SuperSofter是WeMedia早期成员。关注SuperSofter与阿超一起围观冷暖科技世界。

    3.7K50

    usb无法识别怎么办 教你解决usb无法识别

    不过也会遇到过这样的情况,就是将usb设备连接到电脑之后,电脑显示无法正确读取,下面,小编就给大家分享usb无法识别的图文方法了。...其实,造成USB设备无法识别的故障是由于很多原因引起的,包括软、硬件,那该如何解决这个问题呢?下面,小编就来跟大家讲解解决usb无法识别的方法了。...解决usb无法识别 按“win + R”打开运行,输入“cmd”命令,点击“确定” 电脑usb图-1 启动命令提示符窗口,分别执行以下两条命令: reg add "HKEY_LOCAL_MACHINE...无法识别图-7 拔掉USB设备,然后再重新插上 usb设备图-8 如果还没好,右击“通用串行总线控制器”下的“USB Root Hub”项目,打开的右键菜单点击“属性”命令。...usb设备图-9 打开的属性窗口切换到“电源管理”选项卡,去掉“允许计算机关闭此设备以节约电源”,点击“确定”按钮 无法识别图-10 以上就是usb无法识别的讲解方法了。

    4.2K10

    _类内成员函数可以访问本类对象的私有成员

    类内成员函数可以访问本类对象的私有成员 sList是一个类 私有成员是head,有一个成员函数的形参是本类对象(的引用,引不引用不影响结论和原因) ==为什么呢!...对象b是sList类的,而这个intersection函数是sList的成员函数 head虽然是sList类的对象的私有成员,但是是在sList类内访问的 ==就是 在类内访问了本类(的实例化对象)的私有成员...因为这是在类内访问的,又不是在类外== 这说明了,类的成员访问权限,是对于==类==而言的,决定在==类==外是否可被访问 而非对于对象来说的(因为对象不同但是都是属于同一种类,类的实例化对象的成员,...本来就是类的成员,只是抽象和实例化的问题 这非常合理地体现了 类 的封装性 这个就是不行的,在类外访问了 这一点是非常好用的,可以利用这一点 ==用成员函数肆无忌惮地访问对象的私有成员!...==只要声明函数是类的成员函数,将外部同类对象设为形参(加个引用)就可以了!! 不必再为如何访问到同类外部对象的私有成员而苦思了!

    85530

    【C++】静态成员变量 ( 静态成员变量概念 | 静态成员变量声明 | 静态成员变量初始化 | 静态成员变量访问 | 静态成员变量生命周期 )

    ; 静态成员变量 提供了 同类对象的共享机制 : 同一个类的 所有实例对象 , 都可以共享访问 想通的 静态成员变量实例 ; 2、静态成员变量声明 静态成员变量 声明 方式 : 使用 static 关键字...: 只对 类内部已定义的 静态成员变量 进行单纯的赋值 ; // 在函数中为 类 静态成员变量 赋值 Student::number = 2; 4、静态成员变量访问 静态成员变量访问 : 使用域操作符访问...:number << endl; 使用类对象访问 : 格式为 对象名称.静态成员变量名 // 使用 对象 访问 类静态成员变量 // 对象名称.静态成员变量名 cout << "s.number...成员变量访问有两种方式 : 使用 域操作符 访问 类静态成员变量 : 类名::静态成员变量名 ; // 使用 域操作符 访问 类静态成员变量 // 类名::静态成员变量名 cout << "Student...::number = " << Student::number << endl; 使用 对象 <em>访问</em> 类静态<em>成员</em>变量 : 对象名称.静态<em>成员</em>变量名 ; // 使用 对象 <em>访问</em> 类静态<em>成员</em>变量 // 对象名称

    1K20
    领券