https://www.cnblogs.com/evablogs/p/6688938.html

类的定义

在Python中,类通过class关键字定义,类名以大写字母开头

1
2
>>>class Person(object):           #所有的类都是从object类继承
              pass                 #pass先不做任何处理,先跳过,为了防止语法错误
 
创建类的属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> class Person(object):
         address = 'Earth'                       #类的属性直接在类内部定义,当实例属性和类属性重名时,实例属性优先级高
         def __init__(self, name):
                self.name = name
>>> Person.address                               #直接通过类.属性可以访问
'Earth'
>>>p1=Person('A')                               
>>>p1.address                                    #通过创建类的实例,也可以通过实例.属性访问
'Earth'
>>> Person.address='KKKK'                        #类的属性可以动态修改
>>> Person.address
'KKKK'
>>>p1.address                                    #类的属性一经修改,所有访问的属性值也随之更改
'KKKK'
实例的创建

创建实例使用 类名+(),类似函数调用的形式创建:

例如:

1
2
3
4
5
6
7
>>> class Person(object):
             pass
 
>>> p1 = Person()                      #创建实例
>>> p1.name = 'Bart'                   #创建实例属性
>>> p2 = Person()
>>> p2.name = 'Adam'

 初始化实例属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> class Person(object):
             class=1                                              #定义类属性
             def __init__(self, name,age):         #__init__(self,属性1,属性2....):self代表实例,通过self访问实例对象的变量和函数
             self.name = name
             self.__age=age                                        #实例的私有属性无法从外部访问,但是,从类的内部是可以访问的
#定义实例方法
             def get_name(self):
                   return self.__age                              #实例方法,定义在类内部,可以访问实例的私有属性__age
#定义类方法
             @classmethod
             def how_many(cls):                                   #通过@classmethod标记类方法,类方法的第一个参数为cls,cls.class相当于Person.class
                  return cls.class                                #类方法中无法调用任何实例的变量,只能获得类引用
>>> p1 = Person('Bob',12)
>>> print p1.get_age()                                            #实例方法的调用,self不需要显式传入

注意:

下划线和双下划线的区别:

以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,那么以“_”开头的名称都不会被导入,即不能用“from xxx import *”而导入,除非模块或包中的“__all__”列表显式地包含了它们;

以双下划线开头的(__foo)代表类的私有成员,只有类本身能访问,其子类对象也不能访问到这个数据。

python之定义类创建实例的更多相关文章

  1. python基础教程:定义类创建实例

    类的定义 在Python中,类通过class关键字定义,类名以大写字母开头 >>>class Person(object): #所有的类都是从object类继承 pass #pass ...

  2. Python学习:类和实例

    Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规 ...

  3. python中的类和实例

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

  4. Python学习_11_类和实例

    类和实例 类是对象创建实例的模板,而实例则是对象的实体.类使用class关键字定义: class MyClass:    pass python中创建实例直接使用工厂函数(类名加上一对括号),和其他的 ...

  5. Python进阶_类与实例

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

  6. Python面向对象编程 -- 类和实例、访问限制

    面向对象编程 Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程 ...

  7. Python 面向对象基础(类、实例、方法、属性封装)

    python是面向对象语言,一切皆对象. 面向过程: 变量和函数. “散落” 在文件的各个位置,甚至是不同文件中.看不出变量与函数的相关性,非常不利于维护,设计模式不清晰. 经常导致程序员,忘记某个变 ...

  8. Python面向对象:类、实例与访问限制

    首先记录下面向对象的名词: 对象:python万物皆对象,程序设计的东西在对象上体现. 类:具有相同属性和行为的对象的集合. 消息:各个对象之间通过消息相互联系. 方法:对象功能实现的过程. 封装:把 ...

  9. 廖雪峰Python学习笔记——类和实例

    Class MyList(list): __metaclass__ = ListMetaclass #它表示在创建MyList这个类时,必须通过 ListMetaclass这个元类的LIstMetac ...

随机推荐

  1. 21 , CSS 构造模型

    1. div 2. 边距 3. 边框 4. 定位 5. 浮动 1 21.1  div 部分(division)---<div>元素,经常以 div 形式引用---是 XHTML 元素,用于 ...

  2. 骁龙735处理器细节曝光:7nm工艺加持,支持5G

    骁龙700系列是高通公司的中高端芯片组系列,该系列包括10nm骁龙710和骁龙712 SoC:以及8nm骁龙730和骁龙730G SoC.最新消息显示,高通公司正在开发一款新的7nm芯片组,将被称为骁 ...

  3. (办公)springboot配置aop处理请求.

    最近项目用到springboot,就是需要配置一些东西.比如用aop处理请求.方法前通知获取url,method,ip,类方法,参数,方法后通知,返回参数,而且还可以记录一下日志.下面是操作的代码. ...

  4. 自己手动搭建jenkins教程

    下载列表;  http://updates.jenkins-ci.org/download/war/ 本次下载: http://updates.jenkins-ci.org/download/war/ ...

  5. DataPipeline联合Confluent Kafka Meetup上海站

    Confluent作为国际数据“流”处理技术领先者,提供实时数据处理解决方案,在市场上拥有大量企业客户,帮助企业轻松访问各类数据.DataPipeline作为国内首家原生支持Kafka解决方案的“iP ...

  6. SqlServer中循环给多张表建立聚簇索引

    缘由 因为在某个复(bian)杂(tai)需求中用到了170+张表进行查询,而且表中的数据过多,查起来缓慢.只能给这些表添加索引.但是,连表名也是无法确定的(无力吐槽). 解决方法 使用游标遍历查询出 ...

  7. python 自学之路-Day Two

    Day1补充部分 模块初识 模块就是由其他人写好的功能,在程序需要的时候进行导入,直接使用,也叫库. 库有标准库和第三方库,所谓标准库,就是不需要安装就可以直接使用的,自带的:第三方库,就是需要进行下 ...

  8. 函数声明 和 var声明的优先级

    function demo() { console.log(5) } var demo = function(){ console.log(4) } console.log(demo()) var d ...

  9. python安装第三方库报错visual c++ 14.0 is required

    使用python安装第三方库时报错如下: error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ ...

  10. “挑三拣四”地学一学Java I/O

    古人云:“读书破万卷,下笔如有神”.也就是说,只有大量的阅读,写作的时候才能风生水起——写作意味着输出(我的知识传播给他人),而读书意味着输入(从他人的知识中汲取营养). 对于Java I/O来说,I ...