python,类和对象(二),self 、__init__(self,param[,param...])、__private(私有变量)
当我们在类中定义方法的时候,总会看到会第一个参数总是self,是的这个是python的一个语法,他相当于这个对象的指针。
class Dog():
def setName(self,name):
self.name = name
def callName(self):
print("hello",self.name)
#-----------------输出 >>> d = Dog()
>>> t = Dog()
>>> d.setName("didi")
>>> t.setName("tonny")
>>> d.callName()
hello didi
>>> t.callName()
hello tonny
>>>
构造函数__init__(self,param[,param...]),当我们在初始化的时候需要给类内部某些变量进行赋值的时候可以用到
class Cat():
name="tom"
def __init__(self,name):
print("未给定初始值的名字:",self.name)
self.name = name
print("名字:",self.name)
#当我们不给予初始值的时候会报错
>>> c = Cat()
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
c = Cat()
TypeError: __init__() missing 1 required positional argument: 'name'
#当我们给予初始值的时候。
>>> c = Cat("jerry")
未给定初始值的名字: tom #由于默认是tom,所以第一次输出时就是tom
名字: jerry
>>>
__private(私有变量),在Python中一般我们声明的都是公共属性,但是有时候要设置一个属性或者方法为私有方法的时候那么可以通过在属性名称前加两个_来进行声明,这样这个私有属性在外部就访问不到了。如:
class Cat():
name="tom" #共有属性
__no = "" #私有属性
def __init__(self,name):
print("未给定初始值的名字:",self.name)
self.name = name
print("名字:",self.name)
print("编号:",self.__no)
#初始化对象
>>> c =Cat("jerry")
未给定初始值的名字: tom
名字: jerry
编号: 001 #当我们试图调用私有属性的时候会报错
>>> c.__no
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
c.__no
AttributeError: 'Cat' object has no attribute '__no' #当我们调用共有属性的时候直接就成功了
>>> c.name
'jerry'
>>>
但是需要注意的是,在python中私有其实也只能说是“伪私有”,因为我们还是可以通过另一种方式进行访问,也许您已经猜到了:
#通过_Cat__no就可以访问到这个私有方法
>>> c._Cat__no
''
>>>
python,类和对象(二),self 、__init__(self,param[,param...])、__private(私有变量)的更多相关文章
- python 类和对象的属性
python类和对象的属性分为类属性和对象属性两大类,类属性属于类,而对象属性属于对象. 1. 父类的对象属性会被子类的对象继承. 2. 父类的类属性会被子类继承,还是作为类属性,如果父类改变了类属性 ...
- 一文讲全了Python 类和对象内容
摘要:这是一个关于 Python 类和对象的全部内容. 本文分享自华为云社区<从零开始学python | Python 类和对象-面向对象编程>,原文作者:Yuchuan . Pytho ...
- python类、对象
python类.对象 学习完本篇,你将会深入掌握 什么是类,对象 了解类和对象之间的关系 能独立创建一个People(人类),属性有姓名.性别.年龄.提供一个有参的构造方法,编写一个show方法,输出 ...
- python类与对象各个算数运算魔法方法总结
1.python类与对象各个算术运算魔法方法总结: 2.各个魔法方法应用举例: 3.实例训练: (1)我们都知道在 Python 中,两个字符串相加会自动拼接字符串,但遗憾的是两个字符串相减却抛出异常 ...
- python 类和对象
类和对象 类 1.类的组成 数据和函数,二者是类的属性 2.两个作用: 实例化 属性引用 属性引用:类名.属性(增删改查) 实例化: 类名加括号就是实例化,会自动出发__init__的运行 ...
- Python类和对象
目录 类与对象 其他方法 继承 经典类和新式类 派生 组合 接口.归一化设计与抽象类 继承实现的原理 子类中调用父类的方法 指名道姓 super()方法 多态与多态性 封装 单下划线开头 双下划线开头 ...
- python 类,对象
声明类 ''' class 类名: '类的文档字符串' 类体 ''' #我们创建一个类 class Data: pass 声明类 class Person: #定义一个人类 role = 'perso ...
- (8)python 类和对象
一.类和对象 python可以动态的添加删除变量和方法 类中的方法至少要有一个参数,第一个参数会被绑定到类的实例上,通常命名为self 1.构造函数 类中的构造方法名为 __init__(self,. ...
- python 类、对象、方法、属性
在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...
随机推荐
- STM32F4 ------ RTC
如果只执行 HAL_RTC_GetTime(),读取完后时间不再跑 HAL_RTC_GetTime() 和 HAL_RTC_GetDate()
- django_orm查询性能优化
查询操作和性能优化 1.基本操作 增 models.Tb1.objects.create(c1='xx', c2='oo') 增加一条数据,可以接受字典类型数据 **kwargs obj = mode ...
- u-boot(三)启动文件
目录 u-boot(三)启动文件 汇编 C:_start_armboot 代码摘要 C:main_loop 内核启动 菜单处理(自定义实现) 命令处理 title: u-boot(三)启动文件 tag ...
- gcc生成含有C信息的汇编
title: gcc生成含有C信息的汇编 tags: gcc date: 2018-10-24 23:40:19 --- https://www.cnblogs.com/fengkang1008/p/ ...
- Kafka各个版本差异汇总
Kafka各个版本差异汇总 从0.8.x,0.9.x,0.10.0.x,0.10.1.x,0.10.2.x,0.11.0.x,1.0.x或1.1.x升级到2.0.0 Kafka 2.0.0引入了线 ...
- Netsarang
下载 https://www.netsarang.com/zh/all-downloads/ 建议直接下载 xmanager-power-suite,里面包含了 Xmanager.Xshell.Xft ...
- elasticsearch 集成springboot
和jpa类似,很简单,很强大. pom <dependencies> <dependency> <groupId>org.springframework.boot& ...
- struct sock注释
针对 struct sock 的一些注释: struct sock { /* Socket demultiplex comparisons on incoming packets. */ __u32 ...
- C#设计模式(8)——外观模式
1.外观模式介绍 外观模式也被叫做门面模式,这种模式的作用是:隐藏系统的复杂性,并向客户端提供了一个可以访问系统的统一接口,这个统一的接口组合了子系统的多个接口.使用统一的接口使得子系统更容易被访问或 ...
- Debugger for chrome
Debugger In VScode Getting Started Install the extension Debugger for chrome Config the launch.json ...