python类和函数的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python类和函数的区别相关的知识,希望对你有一定的参考价值。

我想请教下,在python中,是进来用函数,还是进来用类。还有,python中,在一个模块能不能访问另外一个模块的类,如果可以,希望说明下。说明的越详细越好

一、主体不同

1、类:是面向对象程序设计实现信息封装的基础。

2、函数:是指一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。

二、特点不同

1、类:是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

2、函数:分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷贝构造函数、成员函数、友元函数、运算符重载函数、内联函数等。


三、规则不同

1、类:实质是一种引用数据类型,类似于byte、short、int(char)、long、float、double等基本数据类型,不同的是它是一种复杂的数据类型。

2、函数:函数必须声明后才可以被调用。调用格式为:函数名(实参)调用时函数名后的小括号中的实参必须和声明函数时的函数括号中的形参个数相同。


参考资料来源:百度百科-函数

参考资料来源:百度百科-类

参考技术A

1、作用不同

Python是面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。

函数是一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。

2、特点不同

Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。

函数中一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。

3、功能不同

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。

在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。

参考资料来源:百度百科-函数

参考资料来源:百度百科-Python

参考技术B 楼上说错了哦,类可以有类方法(查查什么是class method),不需实例化也可以使用的。

python的类和函数的区别主要在于类可以有变量和各种方法,而函数没有。函数只能被运行,返回或者不返回值都可以。

模块如果没有把类声明为私有,其他模块就可以使用这个类,方法是import这个模块,然后用"模块名.类名"来调用。追问

用类好,还是用函数好点。写脚本的时候。还有希望给个例子说明下在模块a调用模块b中的一个类,并且调用这个类的方法,类中的成员变量

追答

看你份额编程风格和实际需要。
如果你是倾向于函数式编程,肯定用函数。如果你习惯于面向对象,肯定以类为主。
如果需要把功能和数据归在一起,肯定用类,用函数只能把数据来回传,不能保存。
例子:
模块b中假设有类B,其中有变量v1,方法f1,类方法f2。
那在模块a中调用方法是:
import b
a = b.B()
aa = a.v1 #引用变量
bb = a.f1() #引用函数
cc = b.B.f2() #引用类方法

本回答被提问者采纳
参考技术C 类使用需要实例化,函数不需要实例化。
class L(object):
def do(self):
...
类L使用时要先实例化
l=L()
然后才能调用do这个函数
result=l.do()
函数是
def do():
....
result=do()
类主要用于封装一些函数
具体可以参考你比较了解的语言

可以在a模块中访问b模块中的类
a模块下有a.py这个文件,a.py中有个类A
b模块中有b.py这个文件,b.py中有个类B

在a.py中调用类B
from a.a import A

bb=B()

这就调用了B这个类,但是不能在a中调用B的同时在b中调用A
参考技术D 额,类主要是为了数据封装,隐藏细节,再加上类对多态,继承的支持,可以更好地运用设计模式等设计方法。

例子嘛。。。

你说的应该是函数式编程和面向对象编程的区别~~~

就像c语言和c++的区别一样~

使用c也可以做面向对象编程,比如结构体中封装数据,使用函数指针封装方法,但是这种“伪装”有时候并不直观~~ 所以才有从语法层面支持面向对象的语言~~

不知道我说没说到点子上。

详细的来说,如果只是简单的脚本,过程式没问题~~
但是如果是复杂的系统,比如万行以上的系统,不使用面向对象的设计方法,是很容易失控的~~

Python day 7 类和实例

一:面向对象编程

1  面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

2  面向对象与面向过程的区别:

    a   面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

    b  面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

3  在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。

class Student(object):

    def __init__(self, name, score):
        self.name = name
        self.score = score

    def print_score(self):
        print(‘%s: %s‘ % (self.name, self.score))

bart = Student(‘Bart Simpson‘, 59)
lisa = Student(‘Lisa Simpson‘, 87)
bart.print_score()
lisa.print_score()

a Student这种数据类型应该被视为一个对象,这个对象拥有namescore这两个属性(Property)。如果要打印一个学生的成绩,首先必须创建出这个学生对应的对象,然后,给对象发一个print_score消息,让对象自己把自己的数据打印出来。
b 给对象发消息实际上就是调用对象对应的关联函数,我们称之为对象的方法(Method)
c 面向对象的设计思想是抽象出Class,根据Class创建Instance。









以上是关于python类和函数的区别的主要内容,如果未能解决你的问题,请参考以下文章

03-python的新式类和经典类区别

Python对象

python中新式类和经典类的区别

Python的类和对象入门

经典类和新式类的区别

Python中面向对象(学习笔记)