python之定义类创建实例
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之定义类创建实例的更多相关文章
- python基础教程:定义类创建实例
类的定义 在Python中,类通过class关键字定义,类名以大写字母开头 >>>class Person(object): #所有的类都是从object类继承 pass #pass ...
- Python学习:类和实例
Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规 ...
- python中的类和实例
今天花了两个多小时后搜索相关博客看了看python中有关类和实例的介绍,差不多大概明白了. python中的类和c++中的类是一样的,不同之处就是c++的类,如果含有成员变量,并且成员变量发生变化后, ...
- Python学习_11_类和实例
类和实例 类是对象创建实例的模板,而实例则是对象的实体.类使用class关键字定义: class MyClass: pass python中创建实例直接使用工厂函数(类名加上一对括号),和其他的 ...
- Python进阶_类与实例
上一节将到面对对象必须先抽象模型,之后直接利用模型.这一节我们来具体理解一下这句话的意思. 面对对象最重要的概念就是类(class)和实例(instance),必须牢记类是抽象的模板,比如studen ...
- Python面向对象编程 -- 类和实例、访问限制
面向对象编程 Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程 ...
- Python 面向对象基础(类、实例、方法、属性封装)
python是面向对象语言,一切皆对象. 面向过程: 变量和函数. “散落” 在文件的各个位置,甚至是不同文件中.看不出变量与函数的相关性,非常不利于维护,设计模式不清晰. 经常导致程序员,忘记某个变 ...
- Python面向对象:类、实例与访问限制
首先记录下面向对象的名词: 对象:python万物皆对象,程序设计的东西在对象上体现. 类:具有相同属性和行为的对象的集合. 消息:各个对象之间通过消息相互联系. 方法:对象功能实现的过程. 封装:把 ...
- 廖雪峰Python学习笔记——类和实例
Class MyList(list): __metaclass__ = ListMetaclass #它表示在创建MyList这个类时,必须通过 ListMetaclass这个元类的LIstMetac ...
随机推荐
- 纯css折叠区域-基于checkbox
Accordion Accordion即可折叠区域,和<details>标签类似,不过更灵活些.折叠区域往常多用JavaScript实现,这里就纯粹用CSS,就想法上也是异途同归. 折叠区 ...
- mysql7笔记----遍历节点所有子节点
mysql遍历节点的所有子节点 DELIMITER // CREATE FUNCTION `getChildrenList`(rootId INT) ) BEGIN ); ); SET sTemp = ...
- Daily Life 01
2019-03-03 我不擅于用文字记录自己的生活,因为很长时间一个人习惯了随意简单的生活,觉得很多事留给回忆就好,另一方面文笔不好,怕自己流出的文字不有趣,过于流水.有看过一些身边人写的随记,都有写 ...
- mysql用户创建授权
创建用户: grant select,update,insert,delete,create,drop,alter,index on *.* to 'jyx_mysql'@'%' identified ...
- CYQ.Data 对于分布式缓存Redis、MemCache高可用的改进及性能测试
背景: 随着.NET Core 在 Linux 下的热动,相信动不动就要分布式或集群的应用的需求,会慢慢火起来. 所以这段时间一直在研究和思考分布式集群的问题,同时也在思考把几个框架的思维相对提升到这 ...
- 浏览器F12 waterfall性能检测详解详解
Queueing 是排队的意思 Stalled 是阻塞 请求访问该URL的主机是有并发和连接数限制的,必须要等之前的执行才能执行之后的,这段时间的耗时 DNS Lookup 是指域名解析所耗时间 I ...
- lambda和匿名内部类使用外部变量为什么要语义final?
今天群里讨论java的lambda实现. 后来不断衍生谈到了为什么lambda和匿名内部类只能使用语义final的外部变量. 最开始以为是java的lambda实现问题,编译期魔法会把外部引用作为参数 ...
- Celery异步调度框架(一)基本使用
介绍 之前部门开发一个项目我们需要实现一个定时任务用于收集每天DUBBO接口.域名以及TOMCAT(核心应用)的访问量,这个后面的逻辑就是使用定时任务去ES接口抓取数据存储在数据库中然后前台进行展示. ...
- 在Xunit中使用FsCheck
目录 编写基于Property-based的单元测试 使用FsCheck编写Property-based测试 在Xunit中使用FsCheck 使用FsCheck编写Model-based测试-待续 ...
- 从零开始学习iftop流量监控(找出服务器耗费流量最多的ip和端口)
一.iftop是什么 iftop是类似于top的实时流量监控工具. 作用:监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等 官网:http://www.ex-parrot.com/~p ...