1. 什么是动态语言(wikipedia)

在运行时,可以进行一些操作(静态语言在编译时执行),比如扩展对象的定义、修改类型等

2. 定义类和创建对象

C++ python
 class A{
public:
A(){
cout << "A 构造函数";
a = "a";
common = "common_a";
}
//private:
string a;
string common;
};
A a = A();
A* a_pointer = new A();
 class A():
def __init__(self):
print("init 函数")
self.a = 'a'
self.common = 'common_a'
a = A() # 在执行时动态地修改对象,创建属性
class ADynamic:
def __init__(self):
print("ADynamicinit 函数") adynamic = ADynamic()
adynamic.a = 'a'
adynamic.common = 'common_a'

3. 属性的访问限制

  C++ python
公有

public:

  int a;

self.a=1
保护

protected:

  int a;

self._a=1

//可通过obj._a访问

私有

private:

  int a;

self.__a=1

//可通过obj._类名__a访问

4. 多继承

C++ python
class AParentParent{
public:
AParentParent(){
cout << "AParentParent 构造函数" << endl;
this->common = "common_aparentparent";
}
string common;
}; class AParent1 : AParentParent{
public:
AParent1(){
cout << "AParent1 构造函数" << endl;
this->common = "common_aparent1";
}
string common;
};
class AParent2 : AParentParent{
public:
AParent2(){
cout << "AParent2 构造函数"<<endl;
this->common = "common_aparent2";
}
string common;
}; class A : AParent1, AParent2{
public:
A(){
cout << "A 构造函数" << endl;
a = "a";
common = "common_a";
}
//private:
string a;
string common;
};
A a = A();
// 输出内容
/*
AParentParent构造函数
AParent1构造函数
AParentParent构造函数
AParent2构造函数
A构造函数
*/
 class AParentParent:
def __init__(self):
print("AParentParent init 函数")
self.common = "common_aparentparent" class AParent1(AParentParent):
def __init__(self):
super(AParent1, self).__init__()
print("AParent1 init 函数")
self.common = "common_aparent1" class AParent2(AParentParent):
def __init__(self):
super(AParent2, self).__init__()
print("AParent2 init 函数")
self.common = "common_aparent2" class A(AParent1, AParent2):
def __init__(self):
super(A, self).__init__()
print("A init 函数")
self.a = 'a'
self.common = 'common_a' ## 输出
# AParentParent init 函数
# AParent2 init 函数
# AParent1 init 函数
# A init 函数
##

//待续...

//static,类方法,__slots__,多态...

python vs C++ 类的更多相关文章

  1. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  2. python pickle 序列化类

    python pickle 序列化类 # coding:utf-8 try: import cPickle as pickle except ImportError: import pickle cl ...

  3. python基础——枚举类

    python基础——枚举类 当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份: JAN = 1 FEB = 2 MAR = 3 ... NOV = 11 DEC = 12 好处是简单 ...

  4. python基础——定制类

    python基础——定制类 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方 ...

  5. python中的类和实例

    今天花了两个多小时后搜索相关博客看了看python中有关类和实例的介绍,差不多大概明白了. python中的类和c++中的类是一样的,不同之处就是c++的类,如果含有成员变量,并且成员变量发生变化后, ...

  6. Python基础-类的探讨(class)

    Python基础-类的探讨(class) 我们下面的探讨基于Python3,我实际测试使用的是Python3.2,Python3与Python2在类函数的类型上做了改变 1,类定义语法  Python ...

  7. python中的类属性和实例属性

    属性就是属于一个对象的数据或者函数,我们可以通过句点(.)来访问属性,同时 Python 还支持在运作中添加和修改属性. 我们先来看看类里面的普通字段: class Test(object): nam ...

  8. Python之Metaclass详解,Python之元类

    本人Java程序员一枚,这几天闲来无事就自学了下Python,学到Metaclass感觉有点迷惑,就在网上查相关资料,在栈溢出(stackoverflow)网站上看到一个关于metaclass的回答, ...

  9. Python进阶_类与实例

    上一节将到面对对象必须先抽象模型,之后直接利用模型.这一节我们来具体理解一下这句话的意思. 面对对象最重要的概念就是类(class)和实例(instance),必须牢记类是抽象的模板,比如studen ...

  10. python之定义类创建实例

    https://www.cnblogs.com/evablogs/p/6688938.html 类的定义 在Python中,类通过class关键字定义,类名以大写字母开头 1 2 >>&g ...

随机推荐

  1. Vuex 存储||获取后台接口数据

    如果你对 Vuex 有一定的了解的话呢,可以继续这一篇的学习了,如果没有的话, 建议先看一看我的上一篇 Vuex基础:地址在下面 Vuex的详解与使用 Vuex刷新数据不丢失 这篇接着上一篇: 这篇将 ...

  2. python3使用ctypes在windows中访问C和C++动态链接库函数示例

    python3使用ctypes在windows中访问C和C++动态链接库函数示例 这是我们的第一个示例,我们尽量简单,不传参,不返回,不访问其他的动态链接库 一 测试环境介绍和准备 测试环境: 操作系 ...

  3. Verilog语言实现并行(循环冗余码)CRC校验

    1 前言 (1)    什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错功能, ...

  4. python3 魔法方法

    魔法方法是一些内置的函数,开头和结尾都是两个下划线,它们将在特定情况下(具体是哪种情况取决于方法的名称)被Python调用,而几乎不需要直接调. 1.__new__ 2.__init__ 3.__st ...

  5. 一文入门C3

    2.CSS3 官方文档:http://www.w3school.com.cn/cssref/index.asp 2.1.CSS基础 基础简单过下,事先说明下:诸如引入.注释.案例就不一一演示了,有个工 ...

  6. js-sha256源码

    /** * [js-sha256]{@link https://github.com/emn178/js-sha256} * * @version 0.9.0 * @author Chen, Yi-C ...

  7. DDCTF-2019

    Web 滴 Web 签到题 Web 大吉大利,今晚吃鸡 1)滴 网址http://117.51.150.246/index.php?jpg=TmpZMlF6WXhOamN5UlRaQk56QTJOdz ...

  8. maven deploy 指定-DaltDeploymentRepository

    运行deploy出现如下错误: deployment failed repository element was not specified in the POM inside distributio ...

  9. 93.Restore IP Addresses(M)

    93.Restore IP Addresses Medium 617237FavoriteShare Given a string containing only digits, restore it ...

  10. Guest Editors’ Introduction: Special Issue on Advances in Management of Softwarized Networks

    文章名称:Guest Editors’ Introduction:Special Issue on Advances in Management of Softwarized Networks 发表时 ...