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) ...
随机推荐
- Shiro简介(一)
1.shiro是一个安全验证框架,可以完成认证.授权.加密.会话管理.与Web集成.缓存等. Authentication:身份认证/登入 Authorization:权限验证.粗粒度权限指对某一 ...
- webpack打包内存溢出的解决方法
由于项目文件越来越多,最终导致在打包时报javaScript heap out of memory错误 解决方案: 1.增加v8内存 使用increase-memory-limit 1)安装 npm ...
- python德国信用评分卡建模(附代码AAA推荐)
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 python信用评分卡建模视频系列教程(附代码) 博主录制 https://study.163.com/course/i ...
- flask SQLALchemy外键及约束
from flask import Flask,session from flask_sqlalchemy import SQLAlchemy import config app = Flask(__ ...
- ansible-playbook 单个yml文件部署tomcat简单示例
#单yaml配置[root@jenkins pb]# cat tomcat.yml --- - hosts: eee vars: #设置变量 war_files: /var/lib/jenkins/w ...
- async+await处理异步问题
在编写网页的时候我们常常会遇到异步问题,async+await是es6提出的解决异步的方法,下面我们来看看这个方法怎么实现解决异步的, 大家都知道,setTimeout是一个定时器.他是一个异步执行的 ...
- nginx 前端POST请求405问题解决与排查过程
问题描述 在请求时,f12提示POST请求报错405 环境描述 nginx转发至后端nginx,后端nginx转发至后端golang api接口 解决步骤 根据网上方法排查,发现80%以上无非就是以下 ...
- LGV 算法 (Lindström–Gessel–Viennot lemma)
e(ai,bi)为从起点ai到终点bi的方案数.以上矩阵行列式结果就是(a1,a2,...an) 到 (b1,b2,...bn) 的所有不相交路径的种数. 具体证明的话看wiki,比较长.. 这个定理 ...
- 040、Docker managed volume(2019-03-01 周五)
参考https://www.cnblogs.com/CloudMan6/p/7152775.html docker managed volume 与bind mount 在使用上最大的区别是不需要 ...
- nginx静态资源反向代理
server { listen 80; server_name music.didi365.com; index index.php index.html index.htm; root /alida ...