Python基础指面向对象:2、动静态方法
面向对象
一、动静态方法
在类中定义的函数有多种特性
1、直接在类中定义函数
再类中直接定义函数,默认绑定给对象,类调用时有几个参数就要传几个参数,对象调用时该函数的第一个参数默认为对象
# 定义一个类
class Student:
# 类公用数据
school_name = '家里蹲大学'
# 对象独有数据
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
# 类公用方法(函数、功能)
def curricula_variable(self):
print(f'{self.name}正在选课')
# 类直接调用功能
stu1 = Student('kangkang', 18, 'male')
Student.curricula_variable(stu1)
---------------------------------------------------------------------------
kangkang正在选课
2、绑定给类的函数
被@classmenthod修饰的函数,默认绑定给类,类调用第一个参数就是类自身,对象也可以调用,应且会自动将产生该对象的类当作第一个参数传入
# 定义一个类
class Student:
# 类公用数据
school_name = '家里蹲大学'
# 对象独有数据
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
# 类公用方法(函数、功能)
def curricula_variable(self):
print(f'{self.name}正在选课')
@classmethod
def func(cls): # 绑定给类的函数,第一位新参为cls
print('我是默认绑定给类的功能', cls)
# 类可直接调用
Student.func()
# 对象调用
stu1 = Student('kangkang', 18, 'mela')
stu1.func()
-----------------------------------------------------------------------------
我是默认绑定给类的功能 <class '__main__.Student'>
我是默认绑定给类的功能 <class '__main__.Student'>
3、被修饰的普通函数
被@staticmethod修饰的函数,是普通的函数,此函数无论是类还是对象调用,都必须手动传参
# 定义一个类
class Student:
# 类公用数据
school_name = '家里蹲大学'
# 对象独有数据
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
# 类公用方法(函数、功能)
def curricula_variable(self):
print(f'{self.name}正在选课')
@classmethod
def func(cls):
print('我是默认绑定给类的功能', cls)
@staticmethod
def func2(aaa):
print(f'我是 {aaa} 被修饰的普通函数,调用我都需要手动传参', )
# 类直接调用
Student.func2('普通函数')
# 对象调用
stu1 = Student('kangkang', 18, 'mela')
stu1.func2('普通函数')
----------------------------------------------------------------------------------
我是 普通函数 被修饰的普通函数,调用我都需要手动传参
我是 普通函数 被修饰的普通函数,调用我都需要手动传参
Python基础指面向对象:2、动静态方法的更多相关文章
- (转)Python成长之路【第九篇】:Python基础之面向对象
一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...
- python基础,函数,面向对象,模块练习
---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? # [] {} () None 0 2,位和字节的关系? # ...
- Python 基础 四 面向对象杂谈
Python 基础 四 面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...
- 自学Python之路-Python基础+模块+面向对象+函数
自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python 1.1 自学Python1.1-简介 1.2 自学Python1.2-环境的 ...
- 【转】Python基础-封装与扩展、静态方法和类方法
[转]Python基础-封装与扩展.静态方法和类方法 一.封装与扩展 封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者的代码:而外部使用者只知道一个接口(函数),只要接口(函数 ...
- 二十. Python基础(20)--面向对象的基础
二十. Python基础(20)--面向对象的基础 1 ● 类/对象/实例化 类:具有相同属性.和方法的一类人/事/物 对象(实例): 具体的某一个人/事/物 实例化: 用类创建对象的过程→类名(参数 ...
- Day7 - Python基础7 面向对象编程进阶
Python之路,Day7 - 面向对象编程进阶 本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个 ...
- Python基础7 面向对象编程进阶
本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 经典 ...
- python3 速查参考- python基础 8 -> 面向对象基础:类的创建与基础使用,类属性,property、类方法、静态方法、常用知识点概念(封装、继承等等见下一章)
基础概念 1.速查笔记: #-- 最普通的类 class C1(C2, C3): spam = 42 # 数据属性 def __init__(self, name): # 函数属性:构造函数 self ...
随机推荐
- django_day11_项目相关
django_day11_项目相关 新增和编辑 路由 url(r'^category_add/$', views.category_change, name='category_add'), url( ...
- 第三十八篇:vue3路由
好家伙,水博客怎么说 1.0.安装:简简单单的淘宝镜像安装 装一下淘宝镜像(一般都有) npm install -g cnpm --registry=https://registry.npm.taob ...
- 01_Django-介绍-项目结构-URL和视图函数
01_Django-介绍-项目结构-URL和视图函数 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn.net/c ...
- 水晶报表导出pdf文件
/// <summary> /// 导出pdf文件 /// </summary> /// <param name="mjsReport">报表文 ...
- MinIO客户端快速入门指南
官方文档地址:http://docs.minio.org.cn/docs/master/minio-client-quickstart-guide MinIO Client (mc)为ls,cat,c ...
- 关于使用kuboard安装其自带的监控应用的注意事项
在安装过程中若想监控kube-controller-manager和kube-scheduler,需要按步骤中的如下说明操作 在这里,所有master节点的这俩文件都需要修改,不用apply,等一分钟 ...
- Traefik2.X 版本 中 URL Rewrite 的使用
文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247484594&idx=1&sn=becbe567 ...
- ELK Stack 日志平台性能优化
转载自: https://mp.weixin.qq.com/s?__biz=MzAwNTM5Njk3Mw==&mid=2247487789&idx=1&sn=def0d8c2e ...
- 延申三大问题中的第二个问题处理---收集查看k8s中pod的控制台日志
1.不使用logstash 2.步骤: 2.1 先获取一个文件的日志 2.2 再获取多个文件的日志 2.3 批量获取文件日志 pod日志文件路径 [root@worker hkd-eureka]# p ...
- Git pull 强制拉取并覆盖本地代码
git fetch --all git reset --hard origin/master git pull