Python类中self.name = name和self._name = name的区别
本质区别是self.name = name 可以 实例.name 外部访问。
这个不是私有属性
self._name =name 不可以 外部访问
这个是私有属性
# -*- coding:utf-8 -*-
class Student(object):def __init__(self, name, grade):self.name = nameself.grade = gradedef print_grade(self):print(f"{self.name}'s grade is {self.grade}")s = Student("Tom", 8)s.print_grade()
# -*- coding:utf-8 -*-
class Student(object):def __init__(self, name, grade):self._name = nameself.grade = grades = Student('Tom', 8)s.print_grade()
结果报错!
使用原则:
在类的内部访问变量的时候用下划线"_"
其他类要访问这个类的变量时用"."
Python类中self.name = name和self._name = name的区别相关推荐
- python 类中定义类_Python中的动态类定义
python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...
- 在python中定义类时、运算符重载_自定义 Python 类中的运算符和函数重载(上)...
如果你对 Python 中的str对象使用过 + 或 * 运算符,你一定注意到了它的操作与 int 或 float 类型的区别: 你可能想知道同一内置运算符或函数如何对不同类对象进行不同操作的.这分别 ...
- python定义私有变量的方法_Python怎么修改私有属性 如何访问python类中的私有方法...
python 类为什么不能定义私有属性和方法 因为b.name[0] = 'zhang'修改的是类属性,类属性是全局的,所有的实例共享,如果想私有化,可以添加 def __init__( self ) ...
- python类装饰器详解-Python类中的装饰器在当前类中的声明与调用详解
我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器. 代码如下: class Test(): xx = False def __init__(self): pa ...
- python类中成员的的调用
python类中成员的调用 python类中的方法到底到底是方法还是函数取绝于调用者, 当类名调用这个方法时他是一个函数 class Foo(object):def f1(self):print(&q ...
- 【转】python类中super()和__init__()的区别
[转]python类中super()和__init__()的区别 单继承时super()和__init__()实现的功能是类似的 class Base(object):def __init__(sel ...
- 用生动的例子花式解释:python类中一定需要有 __init__方法么?没有会怎样?
python 类中一定需要有 __init __方法么?没有的会怎样? 在回答这个问题之前,先说两个问题: ① 面向对象编程? ② 什么是类? 面向对象,先上一个正式点的解释: "把一组数据 ...
- python方法定义..._解析Python类中的方法定义
最近在学习类过程中,绑定方法这个概念没有理解透彻,所以在网上找了很多相关博客.文章研究到底是怎么一回事.因为有的文章所陈述与我在python3.5版本实际实验中有些出入,所以经过实践后总结出以下结论. ...
- Python类中的私有属性和私有方法
Python类中的私有属性和私有方法 Python是面向对象的语言,在Python里一切皆对象,所以大部分情况下,我们都是通过类的方式来编程. 但是Python中的属性和方法在类的外部默认是可以访问的 ...
最新文章
- 【linux】NXP MFGTools工具配置文件详解
- A*算法 javascript模拟
- 集显怎么安装android模拟器,集成显卡是不是不能运行Android L模拟器?
- 牛逼啊!一个可以随时随地写Python代码的神器
- 我的Android进阶之旅------android Matrix图片随意的放大缩小,拖动(转)
- 将域名绑定到ip上,并实现访问不同二级子域名对应不同目录
- Java DataInputStream readUnsignedByte()方法(带示例)
- 【精】C语言之变量存储类型
- 试一下live writer 插入代码是否会高亮
- 13muduo_base库源码分析(四)
- c语言二级考试报名费,c语言二级考试(计算机二级c语言报名)
- 计算机操作系统答案(完整版)
- 嵌入式端的神经网络算法部署和实现综合
- 基于matlab的模糊PID控制仿真
- win10系统(64位)3dmax2018安装与破解遇到问题
- linuxdeployqt ldd ERROR: ldd outputLine: .../libQt5Core.so.5: version `Qt_5' not found (required by
- 【opencv-ml】支持向量机简介
- 产品和程序员的互殴大战
- 香港马市、田忌赛马?这款游戏 IP 碉堡了
- 解决台式机前耳机插孔没有声音