# 类中定义的函数分为两大类,
#一,绑定方法(绑定给谁,谁来调用就自动将它本身当做第一个参数传入)
#   1,绑定到类的方法:用classmethod装饰器装饰的方法。
#       对象也可以掉用,仍将类作为第一个参数传入
#   2,绑定到对象的方法:没有被任何装饰器装饰的方法
#       注意,此时如果类调用对象方法,不会自动传值,需要自己手动传入
#       对象本身。
#   类只有一个,因此对象掉用类方法会自动传值,对象可以有很多个,类调用对象方法
#   时需要传入对象值
class A:@classmethoddef tell_class(cls):# 一般绑定到类的方法这样写,不写self,写clsprint(cls)def tell_obj(self):print(self)
a = A()
a.tell_class()
a.tell_obj()
A.tell_class()
A.tell_obj(a)
# 二,非绑定方法,用staticmethod装饰器装饰的方法
#   1,不与类和对象绑定,类和对象都可以调用,但是就不会自动传值了
#       就相当于一个普通的函数
#   注意:没有装饰器装饰的方法为绑定到对象的方法
import hashlib
import time
class MySQL:def __init__(self,host,port):self.id = self.create_id()self.host = hostself.port = port@staticmethoddef create_id():# 就是一个普通的函数m = hashlib.md5(str(time.time()).encode('utf-8'))return m.hexdigest()
print(MySQL.create_id) #<function MySQL.create_id at 0x0000000001E6B9D8> #查看结果为普通函数
conn=MySQL('127.0.0.1',3306)
print(conn.create_id) #<function MySQL.create_id at 0x00000000026FB9D8> #查看结果为普通函数

转载于:https://www.cnblogs.com/cong12586/p/11366535.html

python基础--面向对象之绑定非绑定方法相关推荐

  1. python基础——面向对象的程序设计

    python基础--面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...

  2. python基础—面向对象

    python基础-面向对象 面向对象 面向过程VS面向对象 类和实例 实例变量和类变量 类的方法 实例方法 静态方法 类方法 面向对象的组合用法 封装.继承和多态 封装 继承 派生 方法的重写 继承注 ...

  3. python基础 面向对象编程

    目录 面向对象编程 1.什么是面向对象编程? 面向过程编程思想 面向对象编程思想 2.什么是类?如何定义. 类: 对象 3.如何产生对象? 调用类时的事件: 4.对象属性的查找顺序: 5.类内部的函数 ...

  4. Python 基础--面向对象编程

    在至今我们编写的所有程序中,我们曾围绕函数设计我们的程序,也就是那些能够处理数据的代码块.这被称作*面向过程(Procedure-oriented)*的编程方式.还有另外一种组织起你的程序的方式,它将 ...

  5. 学Python基础面向对象看这一篇文章就够了【全网首推】

    目录 面相对象基础语法 目标 01. dir 内置函数(知道) 02. 定义简单的类(只包含方法) 2.1 定义只包含方法的类 2.2 创建对象 2.3 第一个面向对象程序 03. 方法中的 self ...

  6. Python基础总结之常用内置方法总结

    文章目录 前言 1.str 1.1.内置方法: 1.2.常用的内置方法 1.3.String模块的一些方法 2.list 2.1.内置方法 2.2.常用内置方法 3.tupple 3.1.内置方法 3 ...

  7. python基础--面向对象(一)

    面向对象的介绍 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计) 举例: 1)解决菜鸟买电脑的故事 第一种方式: 1)在网上查找资料 2)根据自己预算和 ...

  8. [python基础] 面向对象——封装,继承

    面向对象 一.面向对象的基础知识 二.类和面向对象 三.封装 四.继承 (1).基本使用方法 (2).链表相加 (3).多继承 (4).私有属性与私有方法 一.面向对象的基础知识 1.面向对象 定义: ...

  9. python基础----面向对象的程序设计(五个阶段、对小白的忠告、关于OOP常用术语)、类、对象...

    一.面向对象的软件开发有如下几个阶段                                              1.面向对象分析(object oriented analysis ,O ...

  10. Python基础-面向对象编程

    本文完全转载自廖雪峰大神的教程: 面向对象编程 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数 ...

最新文章

  1. Linux-find命令应用举例-按时间筛选和删除文件
  2. 【Paper】2013_基于一致性理论的无人机编队控制器设计_郭伟强
  3. java虚拟机启动参数分类详解
  4. 深度卷积神经网络CNNs的多GPU并行框架及其应用
  5. 关于重定向页面和请求转发页面的区别
  6. 一种语音识别的自动控制系统及方法与流程
  7. struts2.2跟jstl怎么整合
  8. 园区内智慧出行标准化白皮书(2022年)
  9. react中使用微信jssdk分享总结
  10. Java代码简洁-validation参数校验
  11. nbu客户端卸载_卸载NETBACKUP FOR LINUX
  12. WHERE条件子句 | 零基础自学SQL课程系列Day5
  13. Leetcode 2214. Minimum Health to Beat Game [Python]
  14. BugZhu抽抽抽!!(已知三角形三点坐标,求外接圆半径及三角面积)
  15. 有什么便签可以直接当桌面吗?可以显示出便签全部内容
  16. java打印空心六边形_带文字的空心六边形。
  17. 实验室功放三极,669,649,TIP122,127,5551,5401引脚和NE5532
  18. python 命令行参数 parser.add_arguement 中各参数的意思
  19. PX4中文维基汉化项目启动
  20. TensorFlow v1 入门教程

热门文章

  1. mysql dbf导入数据库_MySQL数据库如何导入dbf格式数据?
  2. 5分钟学会 Vim 分屏操作方方面面
  3. 不敢相信?System.currentTimeMillis() 居然存在性能问题
  4. 早期微信抢红包插件项目分享
  5. pythotn基础篇——条件分支与循环--1
  6. php 多个files 数量,php – 具有多个字段时$_FILES数组的奇怪格式
  7. arm-linux cannot find -lgcc_s,arm-linux-gcc编译avrdude时报错: cannot find -lncurses
  8. linux ftp常用操作,linux 操作 ftp 常用命令
  9. maxvalue mysql自动分区_深入解析MySQL分区(Partition)功能
  10. 力扣题目系列:746. 使用最小花费爬楼梯 -- 一道动态规划入门题