python实例化是什么意思_类实例化和python中的’self’
我知道关于这个问题已经写了很多.但是,我不能吸收其中的大部分内容.也许是因为我是一个完整的新手,在没有任何计算机科学培训的情况下自学.无论如何,也许如果你们中的一些大脑在这个具体的例子中引用,你会帮助像我这样的其他初学者.
所以,我编写了以下函数,当我调用它(作为模块?)时,它的工作正常,因为它的文件名为’funky.py’:
我在我的终端输入以下内容:
python classy.py
它运行正常.
def load_deck():
suite = ('Spades', 'Hearts')
rank = ('2', '3')
full_deck = {}
i = 0
for s in suite:
for r in rank:
full_deck[i] = "%s of %s" % (r, s)
i += 1
return full_deck
print load_deck()
但是,当我在一个类中放入相同的函数时,我收到一个错误.
这是’classy.py’的代码:
class GAME():
def load_deck():
suite = ('Spades', 'Hearts')
rank = ('2', '3')
full_deck = {}
i = 0
for s in suite:
for r in rank:
full_deck[i] = "%s of %s" % (r, s)
i += 1
return full_deck
MyGame = GAME()
print MyGame.load_deck()
我收到以下错误:
Traceback (most recent call last):
File "classy.py", line 15, in
print MyGame.load_deck()
TypeError: load_deck() takes no arguments (1 given)
所以,我将定义行更改为以下内容并且工作正常:
def load_deck(self):
将函数放在需要使用“self”的类中是什么意思?我明白’自我’只是一种惯例.那么,为什么需要任何论证呢?从类中调用函数时,函数的行为会有所不同吗?
而且,这几乎更重要,为什么我的班级没有使用init的好处?什么会使用init为我的课程做什么?
基本上,如果有人有时间向我解释,就像我6岁,这会有所帮助.在此先感谢您的帮助.
解决方法:
在类定义中定义函数会调用一些将其转换为方法描述符的魔法.当您访问foo.method时,它将自动创建绑定方法并将对象实例作为第一个参数传递.您可以使用@staticmethod装饰器来避免这种情况.
__init__只是在创建类来执行可选设置时调用的方法. __new__是实际创建对象的内容.
这里有些例子
>>> class Foo(object):
def bar(*args, **kwargs):
print args, kwargs
>>> foo = Foo()
>>> foo.bar
>
>>> Foo.bar
>>> foo.bar()
(<__main__.Foo object at 0x01C9FEB0>,) {}
>>> Foo.bar()
Traceback (most recent call last):
File "", line 1, in
Foo.bar()
TypeError: unbound method bar() must be called with Foo instance as first argument (got nothing instead)
>>> Foo.bar(foo)
(<__main__.Foo object at 0x01C9FEB0>,) {}
标签:python,function,instantiation,self,class
来源: https://codeday.me/bug/20190626/1289182.html
python实例化是什么意思_类实例化和python中的’self’相关推荐
- Python 进阶_OOP 面向对象编程_类属性和方法
目录 目录 类属性 调用类属性 查看类属性 特殊的类属性 类方法 真构造器 __new__ 类属性 在理解类属性之前要先搞清楚 实例属性 和 函数属性 之间的区别: 1. 实例属性:指的是实例化类对象 ...
- Python 进阶_OOP 面向对象编程_类和继承
目录 目录 类 最简单的类 类方法 构造器 __init__ 创建一个类 实例化一个对象 调用实例的方法和属性 创建子类 使用 super 来调用父类的构造器 实例化子类对象 调用子类的属性和方法 类 ...
- python 类和对象 有必要学吗_类与对象-python学习19
类与对象 类:我们常用类来划分一个个特定的群体:我们所说的类,是物以类聚的类,是分门别类的类,是多个类似事物组成的群体的统称.类的概念能帮助我们快速理解和判断事物的性质. 类(class),比如整数. ...
- Python笔记_23_正则相关函数_类中的方法_装饰器_异常
文章目录 正则相关函数 search 和 match split 切割 sub 替换 finditer 匹配字符串中相应内容,返回迭代器 compile 指定一个统一的匹配规则 正则表达式的修饰符 类 ...
- python导入模块的常用方法_(9)python模块的定义、导入、优化,常用模块
[1]模块的定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑等:核心就是实现一个功能)本质上就是.py结尾的 python 文件 比如: 文件名 test.py ,对应的模块名就是 ...
- python 鱼c工作室作业_#鱼C工作室Python作业#图解python百度云
最好的python视频教程谁有 我这里有python全套高清教学视频,非常适合新手小白,真实分享,望采纳点赞. python 网盘 python视频教程从入门到精通 有提取码:提取码:8ste 求一个 ...
- python类的定义和使用_Python3基础之python 之 面向对象基础(定义类、创|python基础教程|python入门|python教程...
第七章面向对象 1.面向过程编程核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式 优点:复杂的问题流 ...
- python程序不出结果_超详细的Python入门教程,1小时就可以学会
为什么使用Python 假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200. 思路:用shell编程.(Linux通常是 ...
- python每天八分钟教程_每天八分钟Python基础教程——对象持久化、序列化
之前,在使用Python开展数据分析的过程中,经常会遇到需要基于同一份中间结果分别做不同维度的分析统计,开始我们做的思路是每次都重新计算,后来发现在TB级别的数据背景下这种操作是非常浪费算力的,考虑到 ...
最新文章
- R可视化多元线性回归模型
- 【服务器】创建docker、运行jupyter相关命令
- Java操作MongoDB(聚合函数)向Mongo插入及查询数据
- 具体化和实例化的应用
- ubuntu查看cuda和cudnn
- (转载addone)完全使用Linux作为桌面系统 —— 使用Linux两年记 --软件列表
- 文章复现:SRCNN
- 15000字看完lululemon增长攻略
- Canvas实例之鼠标移动特效(彩色小球)
- 休闲实用英语:别误会这些英文的意思
- Ubuntu安装LXDE桌面环境
- uniapp swiper组件被内容撑开
- The Civil War in France translation04
- 虫洞 Wormhole
- 浙江大学计算机科学与技术学院分数线,浙江大学分数线是多少 王牌专业有哪些...
- 按关键字搜索淘宝商品
- 综合布线---关于线缆的一些小知识(1)
- Fabric 1.0源代码分析(12)cryptogen(生成组织关系和身份证书)
- 知网的html查重报告看不了,知网查重报告无法查看或者出现乱码怎么解决?
- 开源漏洞检测框架收集
热门文章
- Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...): singular fit encountered
- unexpected symbol、unexpected end of input
- 医学影像阅读/分析软件FSLeyes安装避坑+核磁共振影像数据处理
- PNAS:利用long-read生成个人转录组
- Corrigendum: A window into third generation sequencing
- 使用VC++6.0创建MFC对话框程序
- typora中latex数学公式的使用
- 程序员接活利器,dataTable组件带你快速开发,摆脱CRUD
- 使用pydub做静音帧去除
- Java 注册SIGINT信号,处理CTRL+C