python基础教程:定义类创建实例
类的定义
在Python中,类通过class关键字定义,类名以大写字母开头
>>>class Person(object): #所有的类都是从object类继承
pass #pass先不做任何处理,先跳过,为了防止语法错误
创建类的属性
>>> 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'
实例的创建
创建实例使用 类名+(),类似函数调用的形式创建:
例如:
>>> class Person(object):
pass
>>> p1 = Person() #创建实例
>>> p1.name = 'Bart' #创建实例属性
>>> p2 = Person()
>>> p2.name = 'Adam'
初始化实例属性
>>> 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())
注意:
下划线和双下划线的区别:
以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,那么以_开头的名称都不会被导入,即不能用from xxx import *而导入,除非模块或包中的__all__列表显式地包含了它们;
以双下划线开头的__foo代表类的私有成员,只有类本身能访问,其子类对象也不能访问到这个数据。
python基础教程:定义类创建实例的更多相关文章
- Python 基础教程 —— Pandas 库常用方法实例说明
目录 1. 常用方法 pandas.Series 2. pandas.DataFrame ([data],[index]) 根据行建立数据 3. pandas.DataFrame ({dic}) ...
- python之定义类创建实例
https://www.cnblogs.com/evablogs/p/6688938.html 类的定义 在Python中,类通过class关键字定义,类名以大写字母开头 1 2 >>&g ...
- 2015/9/20 Python基础(16):类和实例
面向对象编程编程的发展已经从简单控制流中按步的指令序列进入到更有组织的方式中,依靠代码块可以形成命名子程序和完成既定的功能.结构化的或过程性编程可以让我们把程序组织成逻辑快,以便重复或重用.创造程序的 ...
- Python基础:18类和实例之二
1:绑定和非绑定 当存在一个实例时,方法才被认为是绑定到那个实例了.没有实例时方法就是未绑定的.在很多情况下,调用的都是一个绑定的方法. 调用非绑定方法并不经常用到,其中一个主要的场景是:派生一个子类 ...
- Python基础:17类和实例之一(类属性和实例属性)
1:类通常在一个模块的顶层进行定义.对于Python来说,声明与定义类是同时进行的. 2:类属性仅与其类相绑定,类数据属性仅当需要有更加“静态”数据类型时才变得有用,这种属性是静态变量.它们表示这些数 ...
- python基础教程:包的创建及导入
包是一种通过用“带点号的模块名”来构造 Python 模块命名空间的方法. 例如,模块名 A.B 表示 A 包中名为 B 的子模块.正如模块的使用使得不同模块的作者不必担心彼此的全局变量名称一样,使用 ...
- Python基础:19类和实例的内建函数
1:issubclass() issubclass()布尔函数,判断一个类是否是另一个类的子类或子孙类.它有如下语法:issubclass(sub,sup) 这个函数也允许“不严格”的子类,意味着,一 ...
- 《python基础教程(第二版)》学习笔记 类和对象(第7章)
<python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person: def setName(self,name): self.name=n ...
- Python 基础教程之包和类的用法
Python 基础教程之包和类的用法 建立一个文件夹filePackage 在filePackage 文件夹内创建 __init__.py 有了 __init__.py ,filePackage才算是 ...
随机推荐
- 《手把手教你》系列基础篇(八十七)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-上篇(详解教程)
1.简介 Apache Log4j 是一个非常古老的日志框架,并且是多年来最受欢迎的日志框架. 它引入了现代日志框架仍在使用的基本概念,如分层日志级别和记录器. 2015 年 8 月 5 日,该项目管 ...
- 2021.08.06 P4392 Sound静音问题(ST表)
2021.08.06 P4392 Sound静音问题(ST表) [P4392 BOI2007]Sound 静音问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 序列a,求 ...
- Jx.Cms开发笔记(六)-重写Compiler
我们在Jx.Cms开发笔记(三)-Views主题动态切换中说了如何切换主题.但是这里有一个问题,就是主题切换时,会报错 这是由于asp.net core在处理Views的信息的时候是在构造函数中处理的 ...
- 6.2 计划任务crond
创建.编辑计划任务的命令为crontab -e,查看当前计划任务的命令为crontab -l,删除某条计划任务的命令为crontab -r. 参数 作用 -e 编辑计划任务 -u 指定用户名称 -l ...
- 攻防世界-MISC:神奇的Modbus
这是攻防世界高手进阶区的第三题,题目如下: 点击下载附件一,得到一个流量包,题目中提到的modbus,百度百科的解释如下: 用wireshark打开流量包,搜索modbus 然后鼠标右键选择追踪流,再 ...
- Ajax简单运用(JavaScript-----jQuery-------)
首先引用 jQuery <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.4.1.min.js"> ...
- FreeRTOS --(14)队列管理之概述
转载自 https://blog.csdn.net/zhoutaopower/article/details/107221175 在任何的 OS 中,都需要支持任务与任务,中断与任务之间的数据传输机制 ...
- 探索ABP的EventHub解决方案
在上一章中,我们构建了一个简单的全栈 Web 应用程序,我们已经看到了使用 ABP 框架开发应用的典型流程,在接下来,我们将使用 ABP 框架创建更高级的应用程序. 给出具有现实世界复杂性的例子并不容 ...
- Java学习笔记-基础语法Ⅷ-泛型、Map
泛型 泛型本质上是参数化类型,也就是说所操作的数据类型被指定为一个参数,即将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型,这种参数类型可以用在类.方法和接口中,分别为泛型类.泛型方法 ...
- 136_Power BI 自定义矩阵热力图
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 在前几天在pbirs自定义登录后,发现一个问题就是非Power BI原生的视觉无法显示,改回AD登录又可以了.目 ...