python实例方法不可以用类调用_python中可以直接用类调用方法吗
python中可以直接用类调用方法吗
关注:244 答案:4 mip版
解决时间 2021-01-16 12:20
提问者 妳莂騙莪
2021-01-15 21:49
python中可以直接用类调用方法吗
最佳答案
二级知识专家归人
2021-01-15 22:18
这里先肯定的回答一下:可以
python里方法在类中是作为类的属性的,在解释之前,这边先给个例子
>>>class Pizza(object):
... radius = 42
... def __init__(self, size=10):
... self.size = size
... def get_size(self):
... return self.size
... @staticmethod
... def mix_ingredients(x, y):
... return x + y
... def cook(self):
... return self.mix_ingredients(self.cheese, self.vegetables)
... @classmethod
... def get_radius(cls):
... return cls.radius
>>> Pizza.get_size
>>> Pizza.get_size()
Traceback (most recent call last):
File "", line 1, in
TypeError: unbound method get_size() must be called with Pizza instance as first argument (got nothing instead)
>>> Pizza.get_size(Pizza(42))
42
>>> Pizza(42).get_size
>
>>> Pizza(42).get_size()
42
>>> m = Pizza(42).get_size
>>> m()
42
>>> m = Pizza(42).get_size
>>> m.__self__
>>> m == m.__self__.get_size
True
>>> Pizza().cook is Pizza().cook
False
>>> Pizza().mix_ingredients is Pizza.mix_ingredients
True
>>> Pizza().mix_ingredients is Pizza().mix_ingredients
True
>>> Pizza.get_radius
>
>>> Pizza().get_radius
>
>>> Pizza.get_radius is Pizza().get_radius
True
>>> Pizza.get_radius()
42在上面的例子中可以看出python中类有三种方法,分别是类方法,静态方法,实例方法。而能让类只接调用的只有类方法,或通过一些小技巧,类也可以调用实例方法如上面例子中的调用
>>> Pizza.get_size(Pizza(42))
42这边顺便说明下这三中方法的区别
1类方法的特点是类方法不属于任何该类的对象,只属于类本身
2类的静态方法类似于全局函数,因为静态方法既没有实例方法的self参数也没有类方法的cls参数,谁都可以调用
3.实例方法只属于实例,是实例化的对象才能调用
全部回答
1楼柒夏锦年
2021-01-15 23:44
不可以
类是一个描述性的东西 不是一个具象的东西 它不能做任何事情 包括调用方法
类的实例才是一个具有行为能力的东西 因此只有实例化之后才能调用方法
2楼爷自有爷的范
2021-01-15 23:22
可以调用,比如下面,common_func被多个函数调用。
class myclass:
def __init__(self):
pass
def func1(self):
# do something
self.common_func()
def func2(self):
# do something
self.common_func()
def common_func(self):
pass
3楼清和十五
2021-01-15 23:04
1、如果你需要用实例来调用你的方法,那么在定义方法的时候,一定要把第一个参数设置成为self;
2、如果你需要使用静态方法,那么你需要在方法前面加上@staticmethod修饰符;
3、如果要使用类方法,那么你需要在方法前面加上@classmethod修饰符,并且在方法中至少使用一个参数,第一个参数在方法中的作用就是代表改类本身。
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上信息!
推荐资讯
大家都在看
python实例方法不可以用类调用_python中可以直接用类调用方法吗相关推荐
- python读取文件的三种方式_python中读取文件的f.seek()方法
用于二进制文件中 F.seek方法 作用: 设置读写位置 F.seek(偏移量, whence=相对位置) 偏移量 大于0的数代表向文件末尾方向移动的字节数 小于0的数代表向文件头方向中移动的字节数 ...
- python中扑克牌类设计_Python中的计数 Counter类
点击上方"AI机器学习与深度学习算法",选择"星标"公众号 原创干货,第一时间送达 在很多场景中经常会用到统计计数的需求,比如在实现 kNN 算法时统计 k 个 ...
- 用python生成九九乘法表的指令_Python中生成九九乘法表的方法有哪几种?
九九乘法表是我们计算的基础,在Python中可以生成九九乘法表.大致有三种方法:列表推导式法.for循环法.while嵌套循环法.具体使用代码请看本文. 方法一.列表推导式法for i in rang ...
- @NamedEntityGraphs --JPA按实体类对象参数中的字段排序问题得解决方法
JPA按实体类对象参数中的字段排序问题得解决方法@Entity @Table(name="complaints") @NamedEntityGraphs({ @NamedEntit ...
- python类定义以及调用_python中如何定义和调用类详解
类的方法的定义 1.def fun_name(self,...); Pass 2.其中的参数self代表类的实例,在调用方法时由系统自动提供 3.方法定义时必须指明self参数 类的方法的调用 与普通 ...
- python释放类对象_Python 基本功: 10. 面对对象-类 Class
虽然 Python 可以写函数式编程,但是本质上是一门面对对象编程语言 (object-oriented programming language),简称 oop.面对对象编程是把代码包装成一个对象 ...
- python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续
上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...
- python中的类怎么定义怎么用_python中怎么定义一个类
什么是类? 类用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 什么是方法? 类中的函数即为方法 如何定义一个类? 定义类,语法格式如下:clas ...
- python中类的属性一般来说_python中实例属性和类属性之间的关系
匿名用户 1级 2018-06-25 回答 一般来说,在Python中,类实例属性的访问规则算是比较直观的. 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此. 在这里 ...
最新文章
- 【BZOJ2434】[NOI2011]阿狸的打字机 AC自动机+DFS序+树状数组
- 【Python学习系列二十五】数据结构-有向图绘制
- 去除a链接+java正则_JavaScript实现正则去除a标签并保留内容的方法【测试可用】...
- C++检测步骤与示例
- c++简单程序设计-5
- 关于 Nuxt 集成ueditor的一些坑(包括图片上传)前端部分
- 【LeetCode笔记】55. 跳跃游戏(Java、贪心法)
- ImageNet标签竟然部分有误!数据集MNIST也会出错?
- python中mean算函数吗_Python numpy.mean函数方法的使用
- html 时间控件 只选择年,js时间控件只显示年月
- 珍爱网App竞品分析报告
- ROSE HA高可用性软件介绍(转载)
- 行测 资料分析 统计术语篇
- 搜狗新闻爬取怎么破解反爬机制呀,求指教
- 网络安全与渗透:漏洞攻击—— msf(四)此生无悔入华夏,男儿何不带吴钩
- linux ftp 取文件,linux下拉取文件的方法
- Java.千呼万唤始出来
- 闪电破解Word文档密码
- python小程序嵌入excel_用原生的方式操作Excel,Python玩转Excel神器xlsxwriter详解!...
- 姜思达和机器人_中国偏见地图曝光:百度大数据看穿了一切