区分函数以及方法

区分函数可以利用两种方法:

第一种直接打印函数名:函数在打印的时候. 很明显的是function. 方法在打印的时候很明显是method.

第二种方式是官方给予的:

from types import FunctionType, MethodType

class car:

  def run(self): # 实例方法
    print("我是车, 我会跑")

  @staticmethod  #静态方法
  def cul():
    print("我会计算")

  @classmethod 类方法
  def jump(cls):
    print("我会jump")

c = car()

print(isinstance(类去调用)FunctionType)  #判断是否为函数

print(isinstance(对象去调用) MethodType)  #判断是否为方法

 

转载于:https://www.cnblogs.com/lowen107/p/9936780.html

在不同的编程语言中,方法函数、对象和变量的区分方式有所不同。下面以C++和JavaScript为例进行说明。 ### C++中的区分 - **变量**:变量是存储数据的容器,在C++中,变量有不同的存储区域,如栈、堆、全局/静态存储区等。栈区的变量由编译器在需要时分配,不需要时自动清除,通常是局部变量、函数参数等 [^2]。例如: ```cpp #include <iostream> int main() { int num = 10; // 定义一个整型变量num return 0; } ``` - **函数**:函数是完成特定任务的代码块,有独立的作用域,通过函数名和参数列表调用。例如: ```cpp #include <iostream> int add(int a, int b) { // 定义一个函数add return a + b; } int main() { int result = add(3, 5); // 调用函数add return 0; } ``` - **对象**:对象是类的实例,类是一种用户自定义的数据类型。对象可以包含数据成员和成员函数。例如: ```cpp #include <iostream> class Maker2 { public: int id; static int a; Maker2(int id) { // 构造函数,也是一种特殊的成员函数 this->id = id; } }; int Maker2::a = 10; int main() { Maker2 obj(20); // 创建一个Maker2类的对象obj return 0; } ``` - **方法**:在C++中,方法通常指的是类的成员函数,它与特定的对象相关联,通过对象调用。例如上面代码中的构造函数`Maker2(int id)`就是类`Maker2`的一个方法。 ### JavaScript中的区分 - **变量**:变量用于存储值,在JavaScript中,变量的类型可以动态变化。例如: ```javascript let num = 10; // 定义一个变量num ``` - **函数**:函数是一段可重复使用的代码块,通过函数名调用。例如: ```javascript function add(a, b) { // 定义一个函数add return a + b; } let result = add(3, 5); // 调用函数add ``` - **对象**:对象是键值对的集合,使用花括号`{}`定义。例如: ```javascript let person = { name: 'John', age: 30 }; ``` - **方法**:方法是对象的属性,且这个属性的值是一个函数。例如: ```javascript let person = { name: 'John', sayHello: function() { // 定义一个方法sayHello console.log('Hello!'); } }; person.sayHello(); // 调用方法sayHello ``` 此外,在JavaScript中,区分变量类型可以使用一些特殊方法。日常使用`typeof`获取变量类型不太准确,遇到`null`、数组或对象时返回值均为`object`,可以使用其他方式准确区分,如判断一个变量是对象还是数组的方式 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值