我认为你的问题的答案只是语法。这正是Python的设置方式,但我对它的设置方式的看法是:

我认为函数来自数学,比如:f(x) = x

所以当计算机编程语言被创造出来的时候,从模拟数学到编程语言似乎有某种逻辑上的连续性。

另一方面,类是计算机科学和重复内存管理的更多结构,因此它们不是以这样的方式创建的,但是由于它们具有功能的质量,所以它们被赋予了类似的符号。

对于Python,我将使用术语method来表示function,因为这是常用的行话。。。

我理解您的论点,即在无参数情况下,应该允许使用快捷方式定义class和method:对于没有继承的classes

对于没有参数的methods

我能想到的一个原因是使用和定义的一致性。让我们看一些例子:

定义:def funcA():

return 0

def funcB(arg):

return arg

你想称之为功能:>>> funcA()

>>> functB("an argument")

以及>>> f1 = funcA

>>> f2 = funcB

>>> f1()

>>> f2("another argument")

传递引用并调用它们。

声明之间的paranthesis语法与调用methods一致。

您需要放上那些空括号,否则解释器将给您一个对method的引用,而不是实际调用它。

这样做的一个好处是可以使代码非常清晰。

定义:class classA:

pass

class classB(object):

pass

用法:# create an instance

my_instance_of_A = classA()

my_instance_of_B = classB()

# pass a reference

my_ref_to_A = classA

my_ref_to_B = classB

# call by reference

new_A = my_ref_to_A()

new_B = my_ref_to_B()

这里的行为没有关于class是否继承的变化,其调用行为由其内部或继承的__init__方法的定义决定。

我认为当前设置的要求空的()使代码对未经训练的人更具可读性。

如果你真的真的想按你的要求去做,有一个解决办法。。。你可以这样做:func = lambda: "im a function declared with no arguments, and I didn't use parenthesis =p"

可以称之为:>>> func

at 0x6ffffef26e0>

>>> func()

"im a function declared with no arguments, and I didn't use parenthesis =p"

python定义类时括号_为什么在定义类时括号是可选的,而在定义函数时括号是必需的?...相关推荐

  1. python计算移动平均线_(转)简单移动平均线(Simple Moving Average,SMA) 定义及使用...

    REF 什么是简单移动平均线 简单移动平均线(SMA)又称"算术移动平均线",是指对特定期间的收盘价进行简单平均化的意思.一般所提及之移动平均线即指简单移动平均线(SMA). 简单 ...

  2. python numpy库作用_整理numpy库的常用功能(持续更新…),NumPy,函数,梳理

    NumPy简介 NumPy是Python中科学计算的基础包.它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学.逻辑.形状操作.排 ...

  3. 为什么一个程序中变量只能定义一次_#带你学Python# 从简单程序出发理解Python基本语法

    欢迎回来. 通过上一篇文章,我们第一次触摸了Python,学会了如何用各种不同的方式运行Python的解释器.也介绍了很多工具和开发环境,是不是跃跃欲试了? 到这里,别的python教程就会从数据类型 ...

  4. python中home定义是什么_第48p,什么是函数?,Python中函数的定义

    原标题:第48p,什么是函数?,Python中函数的定义 大家好,我是 杨数 Tos ,这是<从 零 基础到大神>系列课程的第 48 篇文章 ,第三阶段的课程 : Python进阶知识:详 ...

  5. python定义一个数列_第二章 数列和序列类型

    一.Python变量 1.定义 学习数据类型之前,先来学习以下什么是python变量? 直白意思就是给数据起个名字.变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变. 2.数据 ...

  6. python定义变量类型_一、python基础之数据类型与变量

    一.变量 声明变量 #!/usr/bin/env python age=9 name='ld' name1='ld1' 变量作用:保存状态(程序的运行本质是一系列状态的变化,变量的目的就是用来保存状态 ...

  7. python定义函数需要保留字def_定义函数时要用到哪一个python保留字?_学小易找答案...

    [简答题]常见的足部畸形有哪些?例举6种以上. [其它]请将会计学小册子第四章完成情况(选择+判断+业务题2. 6.)的所有内容拍照上传嗷 [其它]以小组为单位进行现场调研,对足球场外的广场区域植物造 ...

  8. python函数定义和调用_函数定义和调用

    定义函数 在JavaScript中,定义函数的方式如下: function abs(x) { if (x >= 0) { return x; } else { return -x; } } 上述 ...

  9. 定义python函数时如果没有return_定义 Python 函数时,如果函数中没有 return 语句,则默认返回空值 None 。_学小易找答案...

    [多选题]因发现核酶而共享诺贝尔化学奖的科学家是(). [简答题]如果是六角梅花,你还可以用什么方法完成? [填空题]如果函数中没有 return 语句或者 return 语句不带任何返回值,那么该函 ...

最新文章

  1. shell相关测验题
  2. idea编辑器关闭重复代码检查
  3. 机器学习实战 | SKLearn最全应用指南
  4. 我的世界服务器名称被占用,为什么我的世界服务器说此用户名已被注册我都换了很多用户了都没用 爱问知识人...
  5. android studio找不到r文件,Apk 中找不到r类文件
  6. matlab 编程——一些细节、常犯错误的汇总
  7. 子框架页面链接改变(js方法)
  8. 学点PYTHON基础的东东--数据结构,算法,设计模式---访问者模式
  9. ARKit 和 ARCore剖析、结构、原理介绍
  10. Exchange2003部署与管理体系结构
  11. mysql物业管理系统设计_Java开发物业管理系统:数据库表单设计
  12. win10怎样更改系统字体_掌阅F1系统设置及字体更改、水墨屏阅读软件、打卡必备软件...
  13. 【供应链架构day10】供应链架构的基础逻辑
  14. poi导出使用HSSFWorkbook行数超出
  15. 带你通关全栈树型结构设计:从数据库到前端
  16. 男生追女生时的21个致命问题
  17. 员工不明白面试流程,傻傻等了三个月,收到面试评价短信蒙了
  18. 太原理工和山西大学计算机,双一流建设后,山西大学和太原理工你更想去哪一个?...
  19. 电脑右键新建,少了office的几个图标,如:excel,word
  20. 拼音读数字(难度系数:1颗星)

热门文章

  1. Python面试题(二)列表去重,单例
  2. mysql提取各种数据时间的各种方法
  3. 12c oracle 激活_Oracle 12C 安装教程
  4. python bottle支持https_python bottle 简介
  5. 【Spring Cloud中文社区】正式启动
  6. 美团点评境外度假团队前端项目开发实践总结
  7. 论文浅尝 | 基于神经网络的推理(DeepMind Relational Reasoning)
  8. Golang --- package
  9. 项目Beta冲刺(团队) --1/7
  10. CSS 小结笔记之文字溢出处理