精华内容
下载资源
问答
  • js函数参数默认值设置

    万次阅读 多人点赞 2018-06-17 12:54:29
    ES6中给出了函数的默认值设置下面简单介绍几种设置默认参数的方法一.基本用法function first(x = 1, y = 2) {  console.log("x:"+x ,"y:"+ y); } first(); first(100);二.与解构赋值默认值...
    ES6中给出了函数的默认值设置,下面简单介绍几种设置默认参数的方法

    一.基本用法

    function first(x = 1, y = 2) {
        console.log("x:"+x ,"y:"+ y);
    }
    first();
    first(100);


    二.与解构赋值默认值结合

    function second({x, y = 2}) {
        console.log("x:"+x ,"y:"+ y);
    }
    second({});
    second({x:100});
    second({x:100,y:200});

    这种写法在传入多个形参时可以不按顺序写入,会方便很多,可是会有个问题,没有默认值时,每次都要传“{}”就会显得很麻烦,于是我们可以再设置一次默认值

    三.双重默认值

    function third({x = 1 ,y = 2} = {}) {
        console.log("x:"+x ,"y:"+ y);
    }
    third();
    third({x:100,y:200});
    third({x:100});

    这种写法就不会出现易错的情况啦


    四.总结

    以后再进行封装函数时应改用默认值设置,特别是某些多参数的函数
    展开全文
  • python 函数不确定的参数

    千次阅读 2013-07-30 21:43:10
    显然,函数funcA没有参数(同时啥也干:D)。 下面这个函数funcB就有两个参数了, def funcB(a, b):  print a  print b 调用的时候,我们需要使用函数名,加上圆括号扩起来的参数列表,比如 funcB(100, 99...

    先说说函数定义,我们都知道,下面的代码定义了一个函数funcA

    def funcA():
      pass
        
    显然,函数funcA没有参数(同时啥也不干:D)。

    下面这个函数funcB就有两个参数了,
    def funcB(a, b):
      print a
      print b
    调用的时候,我们需要使用函数名,加上圆括号扩起来的参数列表,比如 funcB(100, 99),执行结果是:
    100
    99
    很明显,参数的顺序和个数要和函数定义中一致,如果执行funcB(100),Python会报错的:
    TypeError: funcB() takes exactly 2 arguments (1 given)

    我们可以在函数定义中使用参数默认值,比如
    def funcC(a, b=0):
      print a
      print b
    在函数funcC的定义中,参数b有默认值,是一个可选参数,如果我们调用funcC(100),b会自动赋值为0。

    我们要定义一个函数的时候,必须要预先定义这个函数需要多少个参数(或者说可以接受多少个参数)。一般情况下这是没问题的,但是也有在定义函数的时候,不能知道参数个数的情况(想一想C语言里的printf函数),在Python里,带*的参数就是用来接受可变数量参数的。看一个例子
    def funcD(a, b, *c):
      print a
      print b
      print "length of c is: %d " % len(c)
      print c
    调用funcD(1, 2, 3, 4, 5, 6)结果是
    1
    2
    length of c is: 4
    (3, 4, 5, 6)
    我们看到,前面两个参数被a、b接受了,剩下的4个参数,全部被c接受了,c在这里是一个tuple。我们在调用funcD的时候,至少要传递2个参数,2个以上的参数,都放到c里了,如果只有两个参数,那么c就是一个empty tuple。

    好了,一颗星我们弄清楚了,下面轮到两颗星。

    上面的例子里,调用函数的时候,传递的参数都是根据位置来跟函数定义里的参数表匹配的,比如funcB(100, 99)和funcB(99, 100)的执行结果是不一样的。在Python里,还支持一种用关键字参数(keyword argument)调用函数的办法,也就是在调用函数的时候,明确指定参数值付给那个形参。比如还是上面的funcB(a, b),我们通过这两种方式调用
    funcB(a=100, b=99)

    funcB(b=99, a=100)
    结果跟funcB(100, 99)都是一样的,因为我们在使用关键字参数调用的时候,指定了把100赋值给a,99赋值给b。也就是说,关键字参数可以让我们在调用函数的时候打乱参数传递的顺序!

    另外,在函数调用中,可以混合使用基于位置匹配的参数和关键字参数,前题是先给出固定位置的参数,比如
    def funcE(a, b, c):
      print a
      print b
      print c
    调用funcE(100, 99, 98)和调用funcE(100, c=98, b=99)的结果是一样的。

    好了,经过以上铺垫,两颗星总算可以出场了:
    如果一个函数定义中的最后一个形参有 ** (双星号)前缀,所有正常形参之外的其他的关键字参数都将被放置在一个字典中传递给函数,比如:
    def funcF(a, **b):
      print a
      for x in b:
        print x + ": " + str(b[x])
    调用funcF(100, c='你好', b=200),执行结果
    100
    c: 你好
    b: 200
    大家可以看到,b是一个dict对象实例,它接受了关键字参数b和c。

    常规参数,*参数及**参数可以同时使用,具体怎么用?看看Python Reference Manual吧,关于Function definitions的那些章节。其实,笨想也能猜出来啊,o(∩_∩)o...

    展开全文
  • main函数参数设置

    千次阅读 2016-06-20 22:39:56
    C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程 序运行的入口。其余函数分为有参或无参两种,均由main()函数或...的是有参函数,则参数在调用时传递。 C/C++语言中的main函数

    概括:c程序在运行的时候,main中有两个参数,分别是int argc 和后面的 char * argv[],前面的不用输入,会自动统计你后面所输入的字符串的数量(空格区分),argv[0]保存的是文件路径和名字,所有argc>=1;


    原文转自:http://blog.csdn.net/wu_lai_314/article/details/8454394



    C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程

    序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用

    的是有参函数,则参数在调用时传递。



    C/C++语言中的main函数,经常带有参数argc,argv,如下:

    int main(int argc, char** argv)
    int main(int argc, char* argv[])
    从函数参数的形式上看,包含一个整型和一个指针数组。当一个C/C++的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由
    系统在启动运行时传递参数了。
    在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
    命令参数1参数2....参数n¿
    此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。

    命令行与main()函数的参数存在如下的关系:
    设命令行为:program str1 str2 str3 str4 str5
    其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe,其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv[6],指针数组的取值情况如图6-15所示。




    数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后
    才是参数。


    下面的程序演示argc和argv的使用:


    [cpp] view plain copy
    1. #include<iostream>  
    2.   
    3. using namespace std;  
    4.   
    5. int main(int argc,char **argv){  
    6.   
    7.     for(int i=0;i<argc;i++)  
    8.         cout<<"Argument "<<i<<" is "<<argv[i]<<endl;  
    9.     return EXIT_SUCCESS;  
    10. }  

    该程序编译运行成功,产生了 test.exe 文件,在打开DOS窗口,用cd命令进入到 test.exe 文件夹下 ,在DOS下输入如下命令:

    test.exe hello! this is a test!

    运行的结果如下

    展开全文
  • 构造函数、析构函数是怎么回...下面定义的变量需要通过构造函数Line中的参数进行初始化,当用Line创建一个类对象时自动执行。 class Line { public: Line(double len); // 这是构造函数声明 void getLength(); ...

    构造函数、析构函数是怎么回事呢

    构造函数和析构函数什么时候执行,怎么执行

    因为类的数据成员不能在类声明的时候初始化,所以需要构造函数来实现某些成员函数的初始化。下面定义的变量需要通过构造函数Line中的参数进行初始化,当用Line创建一个类对象时自动执行。

    class Line
    {
       public:
          Line(double len);   // 这是构造函数声明
          void getLength();
          ~Line();  // 这是析构函数声明
       private:
          double length;
    };
    

    构造函数名称和类名相同,析构函数的名称为“~类名”。

    成员函数定义:
    Line::Line(double len)//构造函数定义
    {
        length=len;
        cout << "Object is being created" << endl;
    }
    Line::~Line()//析构函数定义
    {
        cout << "Object is being deleted" << endl;
    }
    void Line::getLength()
    {
        cout<<"the length of the line is"<<length<<endl;
    }
    

    在创建类的对象时,自动执行构造函数,并对类中的变量传参,进行初始化。在主函数return 0时,自动执行析构函数。

    int main( )
    {
       int i=0;cout<<i<<endl;  //cout<<i<<endl,用这一句代码来看构造函数和析构函数什么时候运行
       Line line(10.9);i++;cout<<i<<endl;
       line.getLength();//此时并未执行析构函数,从运行结果可以看出↓
       i++;cout<<i<<endl;
       return 0;
    }
    

    执行结果是

    0                                                                                                                       
    Object is being created                                                                                                 
    1                                                                                                                       
    the length of the line is10.9                                                                                           
    2                                                                                                               
    Object is being deleted
    

    可以看出, 当运行Line line;时,构造函数自动执行;而直到return 0;析构函数才自动执行。

    带参数的构造函数和不带参数的构造函数

    构造函数可以是带参数的,也可以是不带参数的,都可以实现类中变量的初始化,给大家看一下区别

    class Student{
    private:
        char *m_name;
        int m_age;
        float m_score;
    public:
        Student();//这是不带参数的构造函数
        Student(char *name, int age, float score);//这是带了三个不同类型参数的构造函数
        void show();
    };
    Student::Student(){    //这是不带参数的构造函数的变量初始化过程;
        m_name = NULL;
        m_age = 0;
        m_score = 0.0;
    }
    Student::Student(char *name, int age, float score){        //这是带参数的构造函数的变量初始化过程;
        m_name = name;
        m_age = age;
        m_score = score;
    }
    void Student::show(){
        if(m_name == NULL || m_age <= 0){ cout<<"成员变量还未初始化"<<endl; }
        else{cout<<m_name<<"的年龄是"<<m_age<<",成绩是"<<m_score<<endl;  }
    }
    int main(){
    //调用构造函数 Student()
        Student stud;//创建一个不带参数的对象
        stud.show();
        Student stu("小明", 15, 92.5f);//创建一个带参数的对象
        stu.show();
        return 0;
    }
    

    以上代码的运行结果是

    成员变量还未初始化                                                                                                      
    小明的年龄是15,成绩是92.5
    

    通过以上程序段可以看出,如果创建一个不带参数的类对象,会自动执行不带参数的构造函数,如果程序员没有定义构造函数,则系统有一个默认构造函数可以执行。创建一个带有参数的类对象,则自动执行参数数量和类型相匹配的构造函数。

    展开全文
  • python函数除了带参数,带固定参数之外,还有另外三类函数参数有重要使用价值,是提升python水平需要强化的内容。它们是默认参数、元组参数和字典参数。下面举例子说明。 1.默认参数 即在函数定义时赋值的参数。...
  • 关键字参数:**others,便于函数功能的扩展 任意的参数列表 *others 解包参数列表 解包参数列表 函数函数式编程 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的...
  • 但是我知道你要用哪个函数来处理这个命令, 我也知道你的主模块是什么.cpp或者.h, 或者说, 我根本不用关心你在主模块里怎么处理它, 也应该关心用什么函数处理它...... 怎么办? 使用回调! —— lone wolf...
  • js中对函数设置默认参数

    千次阅读 2018-05-14 10:21:02
    函数参数设置默认值,本质就是判断是否传入参数或者参数是否为空。 一般而言,最简单的就是下面的方法: function example(name,age){ name=name||'貂蝉'; age=age||21; alert('你好!我是'+name+',今年'...
  • 函数参数的默认值

    千次阅读 2018-01-21 21:59:47
    函数参数的默认值 基本用法 ES6 之前,能直接为函数的参数指定默认值,只能采用变通的方法。 function log(x, y) { y = y || 'World'; console.log(x, y);}log('Hello') // Hello Worldlog('Hello', 'China...
  • 常用损失函数以及参数优化   这次主要介绍常用损失函数以及关于神经网络优化的问题   1.常用损失函数: 神经网络解决的现实问题主要有两大类:分类与回归。分类指的是将未知数据归类到你希望的类别中去,如经典的...
  • C/C++函数指针参数不匹配问题

    千次阅读 2014-09-21 15:50:16
    函数指针在C/C++中很常用,最近遇到了一非常有趣的问题,函数指针的参数函数的形参个数匹配时会遇到的问题,下面看代码。 // // main.cpp // FuncPointer // // Created by ChengChao on 14-9-21. // Copyright ...
  • Shell脚本函数定义和函数参数

    千次阅读 2017-07-06 15:46:45
    这篇文章主要介绍了Shell脚本函数定义和函数参数,分别介绍了2种自定义函数的方法,以及定义带返回值函数的方法,需要的朋友可以参考下 一、Shell函数 本教程目前为止所有脚本都是从头到尾执行。这样做很好,...
  • Python进阶(二十四)-Python中函数的参数定义和...其实只要把函数参数定义搞清楚了,就难理解了。   先说说函数定义,我们都知道,下面的代码定义了一个函数funcAdef funcA(): pass  显然,函数funcA没有参数。
  • C语言函数参数

    千次阅读 2019-03-21 23:07:27
    一、函数参数可以是变量、变量指针和变量引用: void funcA(int8_t x) { x=x+1; } 代码说明:该函数参数属于值传递,在调用该函数时,仅仅只是把实参的值拷贝了一份赋值给了形参x,之后的任何操作都不会影响到...
  • matlab 中“newff” 函数参数设置

    千次阅读 2017-08-03 10:30:00
    函数的使用方法技巧|和各参数的意义 先来一个简单的源程序让大家练习一下: % Here input P and targets T define a simple function which % we can plot: p = [0 1 2 3 4 5 6 7 8]; t = [0 0.84 0.91 0.14 -...
  • 就是我们为什么要把一个函数的地址作为参数传递给另一个参数。要知道在C语言中,一个函数内部是可以直接调用其他函数的,既然可以直接调用,为什么还要用这么麻烦的办法去把函数当做参数来传递呢。下面我举个例子。...
  • 指向函数的指针变量的用途之一就是可以把该函数的入口地址作为参数传递到其它函数(传递给形参)。 原理举例: 有一个函数名为fun的函数,它有两个形参x1和x2,并且定义x1和x2为指向函数的指针变量。在调用fun函数...
  • 函数指针和指针函数用法和区别

    万次阅读 多人点赞 2018-05-24 08:11:10
    函数指针和指针函数,在学习 C 语言的时候遇到这两个东西简直头疼,当然还有更头疼的,比如什么函数指针函数、指针函数指针、数组指针、指针数组、函数指针数组等等,描述越长其定义就越复杂,当然理解起来就越难,...
  • 函数之传入参数,传出参数

    千次阅读 2016-12-13 23:04:45
    下面的这个例子用来讲解什么是传出参数,什么是传入参数?通过具体的例子帮助大家理解。#include <stdio.h>int func(int num1, int *num2) { *num2 = 5; return num1 + *num2; }int main() { int num1 = 5; int...
  • 关于将函数的地址作为参数传递给另一个函数调用

    千次阅读 多人点赞 2015-10-26 22:38:25
    就是我们为什么要把一个函数的地址作为参数传递给另一个参数。要知道在C语言中,一个函数内部是可以直接调用其他函数的,既然可以直接调用,为什么还要用这么麻烦的办法去把函数当做参数来传递呢。下面我举个例子。 ...
  • R中设置图形参数--函数par()详解

    万次阅读 2016-07-23 14:32:06
    但是有时候默认的图形设置没法满足我们的需要,甚至会碰到各种各样的小问题:如坐标轴或者标题出界了,或者图例说明的大小或者位置遮挡住了图形,甚至有时候默认的颜色也能满足我们的需求。如何进行调整呢?这就...
  • 函数参数 必备参数 缺省参数 命名参数 不定长参数 匿名参数 最后前言Python除了有丰富的标准库之外,还可以自己定义满足自身需求的类和函数。本篇主要介绍如何创建Python自定义函数。软件环境 系统 UbuntuKylin ...
  • js匿名函数作为函数参数 (返回值作为另一个函数的参数)
  • JS处理函数将对象作为参数传递

    千次阅读 2018-12-01 15:52:58
    做项目的时候遇到一个不是很常见的问题,就是js函数传递参数的时候,我们一般是传递一个数字或者是一个字符串,但是当你的需求满足了的时候,就需要将对象或者数组作为一个参数传递过去,这个时候怎么做呢,今天...
  • 以数组作为函数参数的函数调用

    万次阅读 2018-11-28 15:04:44
    调用有参函数需要提供实参,实参可以是常量变量或者表达式,数组元素就相当于变量,因此数组元素可以用作函数实参,但是能用作函数形参(因为在函数被调用时临时分配存储单元,可能为一个数组单独分配存储单元...
  • 正常情况下,函数一旦声明参数,调用时就必须传入,否则会报错: function demo($e){ return $e; } echo demo(); // Uncaught ArgumentCountError: Too few arguments to function xxxx() 那么如何实现 想传参就...
  • 如果函数接口有指针参数,既可以把指针所指向的数据传给函数使用(称为传入参数),也可以由函数填充指针所指的内存空间,传回给调用者使用(称为传出参数),例如strcpy的函数原型为 char *strcpy(char *dest, ...
  • 在深度学习框架PyTorch中已经内置了很多激活函数,如ReLU等,...对于不需要可学习参数的激活函数的实现,比较简单,具体见PyTorch官方教程的一个例子(所用PyTorch版本为1.2): # Inherit from Function class Li...
  • 千万不要把 bool 当成函数参数

    万次阅读 多人点赞 2012-11-15 14:19:31
    但这一条可能会经常被我们所遗忘,就是我们 经常会在函数参数里使用bool参数,这会大大地降低代码的可读性。 信?我们先来看看下面的代码。 当你读到下面的代码,你会觉得这个代码是什么意思? widget->...
  • python函数之_默认值参数总结

    千次阅读 2017-04-17 21:12:01
    python函数之_默认值参数总结 1.默认值参数后的所有参数都必须是默认值参数,直到遇到可变参数 def f1(a = 2 ,b = 3, *c或**c):默认值参数后的参数必须...2.默认值参数,传递新参数会覆盖该函数本地符号表中的值,传递

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,776,317
精华内容 710,526
关键字:

下面哪个函数不需要设置参数