python 面向对象_2
self的理解
通俗理解self就是实例对象,实例化的是什么,self就是什么
实例变量: 经过实例化才能使用的变量
class Person():
def __init__(self,id,name):#构造函数
self.id = id#实例变量
self.name = name#实例变量 def cook(self):
print('%s在做饭'%self.name) def housework(self):
print('%s在做家务'%self.name) xh = Person(1,'小黑')#等同于__init(self,id,name) self其实就是xh
xh.cook()
xh.housework()
xb = Person(2,'小白')
xb.cook()
类变量: 定义在类里面的变量,类的对象优先获取实例变量,也就是构造函数中变量的,如果获取不到就会获取类变量
class Test:
name = 'haha'
def __init__(self,name):
# self.name = name
pass
def test(self):
print('姓名是%s'%self.name) t=Test('ahah')
print(t.name)
类方法:不用实例化即可调用的方法,类名可直接调用,实例也可以调用,类方法可以调用类变量
class Test:
name = 'haha'
def __init__(self,name):
# self.name = name
pass
def test(self):
print('姓名是%s'%self.name)
@classmethod #加上这个装饰器就是定义一个类方法
def sayCountry(cls): #cls代表本身的这个类'Test'
print(cls.name)
t=Test('ahah')
print(t.name)
Test.sayCountry()#类方法,不需要实例化,通过类名直接调用;用实例也能调用
静态方法:无法调用类变量,无法调用类方法; 类名可以直接调用它,实例也可直接调用它
class Test:
name = 'haha'
def __init__(self,name):
self.name = name
def test(self):
print('姓名是%s'%self.name)
@classmethod #加上这个装饰器就是定义一个类方法
def sayCountry(cls): #cls代表本身的这个类'Test'
print(cls.name)
@classmethod
def getCountry(cls):
cls.sayCountry()#类方法可互相调用
@staticmethod #加上这个装饰器就是定义一个静态方法,无法调用类变量和类方法
def help():
print('说明书')
t=Test('ahah')
print(t.name)
Test.sayCountry()#类方法,不需要实例化,通过类名直接调用;用实例也能调用
Test.help()
Test.getCountry()
属性方法:看起来像变量的一个方法,不能用参数
class Test:
name = 'haha'
def __init__(self,name,age):
self.name = name
self.age = age
def test(self):
print('姓名是%s'%self.name)
@classmethod #加上这个装饰器就是定义一个类方法
def sayCountry(cls): #cls代表本身的这个类'Test'
print(cls.name)
@classmethod
def getCountry(cls):
cls.sayCountry()#类方法可互相调用
@staticmethod #加上这个装饰器就是定义一个静态方法,无法调用类变量和类方法
def help():
print('说明书')
@property
def price(self):#属性方法,不能用参数
print(self.age)
t=Test('ahah',10)
print(t.name)
Test.sayCountry()#类方法,不需要实例化,通过类名直接调用;用实例也能调用
Test.help()
Test.getCountry()
t.price #不用加括号,引用方式和引用属性(变量)一致
python 面向对象_2的更多相关文章
- python 面向对象初级篇
Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...
- Python 面向对象 基础
编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...
- python面向对象进阶(八)
上一篇<Python 面向对象初级(七)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...
- python 面向对象(进阶篇)
上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...
- python 面向对象编程学习
1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...
- Python面向对象详解
Python面向对象的"怜人之处" Python的待客之道--谁能进来 Python的封装--只给你想要的 Python的继承--到处认干爹 Python的多态--说是就是
- python 面向对象和类成员和异常处理
python 面向对象 你把自己想象成一个上帝,你要创造一个星球,首先你要把它揉成一个个球,两个直径就能创造一个球 class star: '''名字(name),赤道直径(equatorial di ...
- python 面向对象学习
------Python面向对象初 下面写一个类的简单实用,以便方便理解类 #python 3.5环境,解释器在linux需要改变 #阅读手册查询readme文件 #作者:S12-陈金彭 class ...
- 初识python面向对象
一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...
随机推荐
- 虚拟机 编辑器 vi使用方法详细介绍
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...
- 2019JAVA第五次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间2019/10/11 评分等级 实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. ...
- 4、android studio打包的时候遇到的问题
那就去掉该签名 但是如果使用generated apk的话,则是不会去调用build.gradle文件的,需要使用gradle命令来打包 https://blog.csdn.net/cencibuqi ...
- Python流程控制与while 循环(day01)
一:流程控制 假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的.你要判断哪条叉路是你真正要走的路,如果我们想让 ...
- sql server CDC报错:超出存储过程、函数、触发器的最大嵌套层数(最大层为32)
sys.sp_MScdc_capture_job RAISERROR(22801, 10, -1) --原本 go sys.sp_MScdc_capture_job; go --修改后 ...
- Log的相关用法
1.最好用静态final定义Log变量 private static final Log log = LogFactory.getLog(MyTest.class); 这样做的好处有三: 可以保证线程 ...
- mongodb增删改查常用命令总结
前言 去年我还折腾过mongodb,后来用不到也就没碰了,这就导致了我忘的一干二净,不得不感叹,编程这东西只要不用,就会忘没了.现在我想重拾mongodb,来总结一下常用命令,主要就是增删改查. 另外 ...
- import和from.…import…
import和from.-import- 在讲之前我们先来讲一下怎样去下载第三方库,我们把python看作一部手机,pip就是应用管家,第三方库里面的模块就是应用管家里面的一个应用 一.import模 ...
- RabbitMQ入门教程(十二):消息确认Ack
原文:RabbitMQ入门教程(十二):消息确认Ack 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csd ...
- 2-Elasticsearch原理
参考知乎大佬:https://zhuanlan.zhihu.com/p/62892586 一.倒排索引 倒排索引也叫反向索引,举个例子,理解一下.叫你背一首<静夜思>,立马可以背出,但是叫 ...