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中可以直接用类调用方法吗相关推荐

  1. python读取文件的三种方式_python中读取文件的f.seek()方法

    用于二进制文件中 F.seek方法 作用: 设置读写位置 F.seek(偏移量, whence=相对位置) 偏移量 大于0的数代表向文件末尾方向移动的字节数 小于0的数代表向文件头方向中移动的字节数 ...

  2. python中扑克牌类设计_Python中的计数 Counter类

    点击上方"AI机器学习与深度学习算法",选择"星标"公众号 原创干货,第一时间送达 在很多场景中经常会用到统计计数的需求,比如在实现 kNN 算法时统计 k 个 ...

  3. 用python生成九九乘法表的指令_Python中生成九九乘法表的方法有哪几种?

    九九乘法表是我们计算的基础,在Python中可以生成九九乘法表.大致有三种方法:列表推导式法.for循环法.while嵌套循环法.具体使用代码请看本文. 方法一.列表推导式法for i in rang ...

  4. @NamedEntityGraphs --JPA按实体类对象参数中的字段排序问题得解决方法

    JPA按实体类对象参数中的字段排序问题得解决方法@Entity @Table(name="complaints") @NamedEntityGraphs({ @NamedEntit ...

  5. python类定义以及调用_python中如何定义和调用类详解

    类的方法的定义 1.def fun_name(self,...); Pass 2.其中的参数self代表类的实例,在调用方法时由系统自动提供 3.方法定义时必须指明self参数 类的方法的调用 与普通 ...

  6. python释放类对象_Python 基本功: 10. 面对对象-类 Class

    虽然 Python 可以写函数式编程,但是本质上是一门面对对象编程语言 (object-oriented programming language),简称 oop.面对对象编程是把代码包装成一个对象 ...

  7. python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续

    上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...

  8. python中的类怎么定义怎么用_python中怎么定义一个类

    什么是类? 类用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 什么是方法? 类中的函数即为方法 如何定义一个类? 定义类,语法格式如下:clas ...

  9. python中类的属性一般来说_python中实例属性和类属性之间的关系

    匿名用户 1级 2018-06-25 回答 一般来说,在Python中,类实例属性的访问规则算是比较直观的. 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此. 在这里 ...

最新文章

  1. 【BZOJ2434】[NOI2011]阿狸的打字机 AC自动机+DFS序+树状数组
  2. 【Python学习系列二十五】数据结构-有向图绘制
  3. 去除a链接+java正则_JavaScript实现正则去除a标签并保留内容的方法【测试可用】...
  4. C++检测步骤与示例
  5. c++简单程序设计-5
  6. 关于 Nuxt 集成ueditor的一些坑(包括图片上传)前端部分
  7. 【LeetCode笔记】55. 跳跃游戏(Java、贪心法)
  8. ImageNet标签竟然部分有误!数据集MNIST也会出错?
  9. python中mean算函数吗_Python numpy.mean函数方法的使用
  10. html 时间控件 只选择年,js时间控件只显示年月
  11. 珍爱网App竞品分析报告
  12. ROSE HA高可用性软件介绍(转载)
  13. 行测 资料分析 统计术语篇
  14. 搜狗新闻爬取怎么破解反爬机制呀,求指教
  15. 网络安全与渗透:漏洞攻击—— msf(四)此生无悔入华夏,男儿何不带吴钩
  16. linux ftp 取文件,linux下拉取文件的方法
  17. Java.千呼万唤始出来
  18. 闪电破解Word文档密码
  19. python小程序嵌入excel_用原生的方式操作Excel,Python玩转Excel神器xlsxwriter详解!...
  20. 姜思达和机器人_中国偏见地图曝光:百度大数据看穿了一切

热门文章

  1. PotPlayer视频播放工具
  2. 2021-10-06---RestTemplate对象
  3. 汇编语言标志位 含义 NV UP EI NG NZ AC PE CY
  4. 天池精准医疗大赛——人工智能辅助糖尿病遗传风险预测总结
  5. android系统文件夹
  6. Springer 参考文献显示?
  7. 职称评审被淘汰的诸多原因,可以赶紧为2022年评职称做准备
  8. 跨境电商拼多多详情接口API数据获取示例
  9. dbaplus-爱可生社区-北京站沙龙归来
  10. csgo人机指令_CSGO指令:命令BOT前往指定位置