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才算是 ...
随机推荐
- 2021.11.10 P5231 [JSOI2012]玄武密码(AC自动机)
2021.11.10 P5231 [JSOI2012]玄武密码(AC自动机) https://www.luogu.com.cn/problem/P5231 题意: 给出字符串S和若干T,求S与每个T的 ...
- 国产化之 .NET Core 操作达梦数据库DM8的两种方式
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等.考虑到这些基础产品对.NET的支持,最终选择了.NET Core ...
- Java 语言实现简易版扫码登录
基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学 ...
- lab_1 清华大学ucore bootload启动ucore os(预备基础知识+实验过程)
实验1 :bootload启动ucore os 1.0实验内容: lab1中包含一个bootloader和一个OS.这个bootloader可以切换到X86保护模式,能够读磁盘并加载ELF执行文件格式 ...
- [笔记] 轮廓线 DP
是状态 DP 的一种,主要是对于网格图状压,实现 \(O(1)\) 转移的一种处理方式. oooo---- ----x - 是状压了信息的位置,x 是当前更新的位置. 应用价值 可以一格一格考虑状态, ...
- 没错,华为开始对IoT下手了!
最近,有很多粉丝在后台私信 想知道目前最热的技术是什么? 小编觉得,5G时代到来 物联网技术将迎来快速的发展 加上目前,国内物联网人才短缺 每年人才缺口达百万 IoT物联网将成为最热门的技术 最近,小 ...
- Blazor和Vue对比学习(基础1.2):模板语法和Razor语法
Vue使用模板语法,Blazor使用祖传的Razor语法,从逻辑和方向上看,两者极为相似,比如: 都基于HTML 都通过声明式地将组件实例的状态(数据/方法)绑定到呈现的DOM上 都通过指令实现更加丰 ...
- Barbican密钥管理器服务
Barbican服务介绍 Key Manager 服务 (barbican) 提供机密数据的安全存储.配置和管理.这包括密钥材料,例如对称密钥.非对称密钥.证书和原始二进制数据. Barbican 是 ...
- UART串口及Linux实现
UART,全称Universal Asynchronous Receiver Transmitter,通用异步收发器,俗称串口.作为最常用的通信接口之一,从8位单片机到64位SoC,一般都会提供UAR ...
- Java学习笔记-基础语法Ⅱ
成员变量:类中方法外的变量 局部变量:方法中的变量 注意,成员变量有默认初始值,而局部变量需要赋初始值 Java中虽然没有明确规定类必须首字母大写,但为了规范最好大写(因为自己刚刚写的时候就没看清写错 ...