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. Linux(Ubuntu)使用日记------部署JavaWeb项目到服务器

    0.前言 本博文内容是建立在你可以通过SSH连接到远程服务器的基础上的,如果你还没有用SSH连接到远程服务器,请参考此文(腾讯云服务器): http://www.cnblogs.com/hwtblog ...

  2. 【MySQL 读书笔记】全局锁 | 表锁 | 行锁

    全局锁 全局锁是针对数据库实例的直接加锁,MySQL 提供了一个加全局锁的方法, Flush tables with read lock 可以使用锁将整个表的增删改操作都锁上其中包括 ddl 语句,只 ...

  3. Idea在@Autowired注入时报错

    Could not autowire. No beans of 'UserDao' type found 如图,是因为idea检测能力太强,一旦没有找到实现类就会报错,但是我试了,这里其实是注入进来了 ...

  4. JSON.stringify的三个参数(转载)

    前段时间勾股有提到stringify是支持三个参数,刷新的了我的认知,后来查到文档才发现还真的是支持三个参数的. 参考资料: stringify stringify方法顾名思义,就是把JSON序列换, ...

  5. 洛谷P3268 [JLOI2016]圆的异或并(扫描线)

    扫描线还不是很熟啊--不管是从想的方面还是代码实现的方面-- 关于这题,考虑一条平行于\(y\)轴的扫描线从左到右扫描每一个圆,因为只有相离和内含两种关系,只用在切线处扫描即可 我们设上半圆为1,下半 ...

  6. P1006 传纸条 (方格取数dp)

    题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mm行nn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运 ...

  7. 最近公共祖先(LCT)

    来一发\(LCT\)求\(LCA\) \(LCT\)在时间上不占据优势,码量似乎还比树剖,倍增,\(Tarjan\)大一点 但是却是一道\(LCT\)的练手题 对于每一个询问,我们只需要把其中一个点( ...

  8. Day042---浮动 背景图设置 相对定位绝对定位

    1.练习浮动 2.文本属性和字体属性 文本对齐 ​ text-align left 左对齐 right 右对齐 center 中心对齐 justify 两边对齐 只适应于英文 text-indent ...

  9. 关于 iOS 性能优化方面的面试题,

    这是我前面几天碰到的面试题: 如何对定位和分析项目中影响性能的地方?以及如何进行性能优化? 我的答案: 定位方法: instruments   在iOS上进行性能分析的时候,首先考虑借助instrum ...

  10. Java:IO流-流的操作规律和转换流

    首先我们先来了解一些IO流基本知识. 一,基本知识概括 具体的IO流有很多种,针对不同的应用场景应该使用相应的流对象.但怎么确定应该使用哪个IO流对象呢? 一般要有四个明确: 1)明确源和目的 源:I ...