精华内容
下载资源
问答
  • 2020-06-06 13:27:27

    Python3中定义类的时候加括号和不加括号有区别吗?

    在Python中定义类class的时候,可以加上():

    #!/usr/bin/env python3
    class Persion():
        def __init__(self,name):
            self.name = name
            print(self)
            print(type(self))
            print(self.__class__)
    
    ### 实例化
    tt = Persion("aa")
    
    

    也可以不加上():

    #!/usr/bin/env python3
    class Persion:
        def __init__(self,name):
            self.name = name
            print(self)
            print(type(self))
            print(self.__class__)
    
    ### 实例化
    tt = Persion("aa")
    

    我们还可以加 object

    #!/usr/bin/env python3
    class Persion(object):
        def __init__(self,name):
            self.name = name
            print(self)
            print(type(self))
            print(this.__class__)
    
    ### 实例化
    tt = Persion("aa")
    
    
    

    object 又是什么?

    object是python的默认类,他有很多的方法,比如list,str,dict等等都是继承了object类的方法。

    继承了object的类属于新式类 ÿ
    更多相关内容
  • #include &...class empty { }; // 一个默认构造函数,一个自定义构造函数 class Base { public: Base() { cout << " default Base construct " << endl; ...
    #include <iostream>
    using namespace std;
    
    // 空类
    class empty
    {
    };
    
    // 一个默认构造函数,一个自定义构造函数
    class Base
    {
    public:
        Base() 
        { 
            cout << " default Base construct " << endl;
            m_nValue = 100; 
        };
        Base(int nValue) 
        { 
            cout << " custom Base construct " << endl;
            m_nValue = nValue; 
        };
    
    private:
        int m_nValue;
    };
    
    // 一个复合默认构造函数
    class custom
    {
    public:
        custom(int value = 100)
        { 
            cout << " default && custom construct " << endl;
            m_nValue = value; 
        }
    
    private:
        int m_nValue;
    };
    
    void main()
    {
        empty* pEmpty1 = new empty;
        empty* pEmpty2 = new empty();
    
        Base* pBase1 =  new Base;
        Base* pBase2 = new Base();
        Base* pBase3 = new Base(200);
    
        custom* pCustom1 = new custom;
        custom* pCustom2 = new custom();
    
        delete pEmpty1;
        delete pEmpty2;
    
        delete pBase1;
        delete pBase2;
        delete pBase3;
    
        delete pCustom1;
        delete pCustom2;
    }
    // Result:
    /*
    default Base construct
    default Base construct
    custom Base construct
    default && custom construct
    default && custom construct
    */

    至此足以。

    【2】加括号与不加的区别

      (1)加括号

        1. 若括号为空,即无实参项,那么理解为调用默认构造函数;

        2. 若括号非空,即有实参项,可以理解为调用重载构造函数,或复合默认构造函数。

      (2)不加括号

        调用默认构造函数,或复合默认构造函数。

    【3】默认构造函数 与 复合默认构造函数的区别

    默认构造函数:编译器会为每一个类默认提供一个构造函数,称之为默认构造函数。默认构造函数一般参数为空。

    复合默认构造函数:一个由用户自定义的所有形式参数都赋有默认值的构造函数,称之为复合默认构造函数。

    两者联系:

    一个类中,若一旦有一个用户自定义构造函数,那么由编译器提供的默认构造函数就不再存在。用户自定义的构造函数为默认构造函数的重载版。

    默认构造函数不复存在时,用户必须为这个类再自定义一个复合默认构造函数(选所有自定义构造函数其中之一,把形式参数均赋默认值即可)。

    不论自定义构造函数(即构造函数的重载版)有多少个,只允许有一个复合默认构造函数。

    展开全文
  • [C++]类名加括号是什么东东

    千次阅读 2021-01-06 21:13:13
    class MyClass { public: MyClass() { printf("MyClass\n"); } }; int _tmain(int argc, _TCHAR* argv[]) { MyClass(); return 0; } 关键点在于,有一行代码是这样的 MyClass() 来个更难点的,下面的能编译过...

    先考考大家,下面的代码,编译得过吗?

    class MyClass
    {
    public:
        MyClass()
        {
            printf("MyClass\n");
        }
    };
    int _tmain(int argc, _TCHAR* argv[])
    {
        MyClass();
    
        return 0;
    }

    关键点在于,有一行代码是这样的
    MyClass()

    来个更难点的,下面的能编译过吗?

    template <class T> class MyTemp {
    public:
        MyTemp(T arg)
        {
            t = arg;
            std::cout << t << std::endl;
        }
    
    private:
         T t;
    };
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        MyTemp<double>(5.5);
    
        return 0;
    }
    
    

    关键点在于:
    MyTemp<double>(5.5);




    揭晓答案,先从QT的一行代码说起
    { insertRow(arow, QList<QStandardItem*>() << aitem); }
    这个调用对应的函数为:

    void QStandardItem::insertRow(int row, const QList<QStandardItem*> &items)
    {
        Q_D(QStandardItem);
        if (row < 0)
            return;
        if (columnCount() < items.count())
            setColumnCount(items.count());
        d->insertRows(row, 1, items);
    }

    也就是说,
    QList<QStandardItem*>() << aitem会对应成const QList<QStandardItem*> &items

    那么
    QList<QStandardItem*>()的意思就是会生成一个临时对象QList<QStandardItem*>

    回到开头
    MyClass()会成一个临时对象MyClass
    MyTemp<double>(5.5);生成一个临时对象MyTemp<double>
    就这样....

    展开全文
  • vue 动态添加class类名,灵活得让你发狂,下面示例几个 动态添加类名 <!-- 第一种方式:对象的形式 --> <!-- 第一个参数 类名, 第二个参数:boolean值 --> <!-- 对象的形式: 用花括号包裹...
  • 1. 类名加括号和不加括号 class clsTest(): y = 'you' def __init__(self): self.y = 'me' print clsTest x = clsTest print x print(x.y) x = clsTest() print(x.y) 执行结果: main.clsTestmain....

    1. 类名加括号和不加括号

    class clsTest():
        y = 'you'
    
        def __init__(self):
            self.y = 'me'
    
    
    print clsTest
    x = clsTest
    print x
    print(x.y)
    
    x = clsTest()
    print(x.y)

    执行结果:

    main.clsTest
    main.clsTest
    you
    me

    分析:

    加括号的是类的实例化;不加括号就不是启动实例,这个应该和设置一个别名是一样的。

    2. 函数名加括号和不加括号

    def bracket(data):
        return data
    
    
    if __name__ == '__main__':
        print bracket
        # 不带括号调用的结果:<function bracket at 0x0000000004DD0B38>,a是整个函数体,是一个函数对象,不须等该函数执行完成
        a = bracket
        print a
        # 带括号调用的结果:6 ,b是函数执行后返回的值6,须等该函数执行完成的结果
        b = bracket(6)
        print b

    执行结果:

    <function bracket at 0x7ff43a5b95f0>
    <function bracket at 0x7ff43a5b95f0>
    6

    展开全文
  • 很多同学有疑问,为什么python里的class定义类括号有object 当我在python编辑器里输入object后,然后按住ctrl键+鼠标左键 即可查看object里的方法 class object: """ The most base type """ # del obj.xxx或...
  • 因为本文参考的文章较多,csdn无法在原文链接处填写多个链接,故此处...1. 类名加括号和不加括号 class clsTest(): y = 'you' def __init__(self): self.y = 'me' print clsTest x = clsTest print x print(x...
  • Python 定义类的简单语法如下:class 类名:执行语句...零个到多个类变量...零个到多个方法...类名只要是一个合法的标识符即可,但这仅仅满足的是 Python 的语法要求:如果从程序的可读性方面来看,Python 的类名...
  • C++类的名字后面直接加括号

    千次阅读 2020-09-13 11:43:01
    class A { private: static int k; int h; public: class B { public: void foo(const A& a){ cout << k << endl; //运行完成 cout << a.h << endl;//运行完成 } }; ...
  • python定义类不写括号

    千次阅读 2021-02-03 11:37:55
    Python定义类的简单语法如下:class类名:执行语句...零个到多个类变量...零个到多个方法...类名只要是一个合法的标识符即可,但这仅仅满足的是 Python 的语法要求:如果从程序的可读性方面来看,Python 的类名必须...
  • vue 动态添加class类名

    千次阅读 2020-09-09 14:40:45
    <template> <div> <h2>...-- 对象的形式: 用花括号包裹起来,类名用引号, --> <!-- 优点: 以对象的形式可以写多个,用逗号分开 --> <p :class="{'p1' : true...
  • 而使用new+类名的方式创建,不加括号时不会对成员变量初始化,而加括号会初始化为0。 结论: 对于有构造函数的类: cat c1;//在堆栈中创建对象和引用,调用cat()构造函数 cat c2();//只在栈中创建引用,没有堆中的...
  • 动态添加class类名,灵活得让你发狂,下面示例几个 <template> <div> <h2>动态添加类名</h2> <!-- 第一种方式:对象的形式 --> <!-- 第一个参数 类名, 第二个参数:boolean值 -...
  • 在不考虑用new动态创建对象的情况下,用最普通的类名 对象名(参数);的方法创建对象先贴上最正常最普通的代码 #includeusing namespace std;class C{public:C(){cout<};C(int m){cout<};private:int n;};int ...
  • 我的问题是:为什么有时在括号内声明类,如以下代码所示?public class Animal {public static void hide() {System.out.println("The hide method in Animal.");}public void override() {System.out.print...
  • c/c++里的new加括号与不加括号的区别

    千次阅读 2020-04-02 17:24:21
    今天上课的时后老师提到:new开辟变量时,后面加 ( ) ,与不 ( ) 的效果是一样的。在验证中发现了一些特殊的地方。 全文总结(分析在下面): 调用系统的默认无参构造函数时,是可以实现创造变量时顺便进行初始化...
  • Python中类-带括号与不带括号的区别(通俗易懂)

    万次阅读 多人点赞 2020-02-12 13:26:41
    首先类不带括号我们叫赋值,带括号我们叫实例化。 本文主要解决一下几个问题: 什么是赋值? 什么是实例化? 不带括号-赋值 带括号-实例化 什么是赋值? 来者皆客,先上杯茶(例子),你品,你细品: >>...
  • 高级函数参数里有个 类名.(),曾经也抄过放到自己的代码里。但是没有深究,一段时间后看的时候又忘记是什么意思了,so 记录一下。 二、先说结论 className.() 在高阶函数中出现,作为高阶函数的一个参数。 表示:一...
  • 这是一道刷到的面试题,感觉在某些框架里也看到过类似的用法,正则匹配类名,id什么的,当然不一定跟我写的一样,如有更好办法,欢迎分享。 function getClass() { var arr = []; var str2 = document....
  • 类名 对象名括号

    2016-03-01 19:07:06
    #include using namespace std;...class A { public:  A()  {  cout  } }; void main() {  A a();//此时编译器把a当初一个函数名,而没有当初一个对象名,所有不调用构造函数。  cin.get();  return; }
  • 起因: 下面一段代码没有达到预期 ...class GlobalVar(): is_init = False def set_init_status(is_init): GlobalVar().is_init = is_init def get_init_status(): return GlobalVar().is_init if ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 90,815
精华内容 36,326
关键字:

class类名后面加括号

友情链接: HeapSort.rar