Python笔记——类定义

Python笔记——类定义

一、类定义:

class <类名>:

<语句>

类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性

如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象

类的私有属性:

__private_attrs  两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问

在类内部的方法中使用时 self.__private_attrs

类的方法

在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数

私有的类方法

__private_method 两个下划线开头,声明该方法为私有方法,不能在类地外部调用

在类的内部调用slef.__private_methods

类的专有方法:

__init__  构造函数,在生成对象时调用

__del__   析构函数,释放对象时使用

__repr__ 打印,转换

__setitem__按照索引赋值

__getitem__按照索引获取值

__len__获得长度

__cmp__比较运算

__call__函数调用

__add__加运算

__sub__减运算

__mul__乘运算

__div__除运算

__mod__求余运算

__pow__称方

示例:

#类定义 
class people:
    #定义基本属性
    name = ‘‘ 
    age = 0 
    #定义私有属性,私有属性在类外部无法直接进行访问 
    __weight = 0 
    #定义构造方法 
    def __init__(self,n,a,w): 
        self.name = n 
        self.age = a
        self.__weight = w 
    def speak(self):
        print("%s is speaking: I am %d years old" %(self.name,self.age))   
p = people(‘tom‘,10,30) 
p.speak()

时间: 2024-11-07 15:14:41

Python笔记——类定义的相关文章

Python 笔记 : 类和继承

# -*- coding=  utf-8 -*- # 文件编码定义的语法规则是: coding[:=]/s*([-/w.]+) # 未指定编码将默认为 : ASCII # 同时要注意物理文件的编码也要符合本语言指定的编码 # 更多可参考: http://python.org/dev/peps/pep-0263/ class CBase: '''''资源相关类'''     # 通过CBase.__doc__ 或者类实例.__doc__ 可以输出此说明 counter = 0;    # 这是属于

python的类定义与实例化

理解类属性和实例属性: 直接在类里面定义的变量叫类属性,类属性是公有的,每个类实例化就自动拥有类的属性,且实例化对象的这个属性的初始地址指向类属性的地址 如果直接给实例化对象的属性赋值这样会改变该属性的内存地址,此时不在指向类属性地址,而是在实例内存地址中开一块空间存该属性 在类方法里面定义的self.xx是实例属性,是私有的,每个实例有自己的存储空间,各自的私有属性存在各自的空间中 当然也可以直接给实例化对象增加属性如a1是Animal的实例化对象,则a1.age = 18会给a1添加一个类属

python学习笔记-类的descriptor

descriptor应用背景 所谓描述器,是实现了描述符协议,即get, set, 和 delete方法的对象. 简单说,描述符就是可以重复使用的属性. 比如以下代码: f = Foo() b = f.bar f.bar = c del f.bar 在解释器执行上述代码时,当发现你试图访问属性(b = f.bar).对属性赋值(f.bar = c)或者删除一个实例变量的属性(del f.bar)时,就会去调用自定义的方法. 为什么把对函数的调用伪装成对属性的访问?有什么好处? 从property

Python学习-11.Python中的类定义

Python是一门面向对象语言,那么作为面向对象的特征——类也是有的.值得注意的是Python中一切皆对象,并不像C#中为了性能考虑,int这些在Python中也是对象.(C#中int是结构体) 如何定义一个类: 1 class Person: 2 pass 使用class关键字,上面定义了一个Person类.但是现在这个类是空白的. 接下来定义一个构造函数 1 class Person: 2 def __init__(self,name,age): 3 self.name=name 4 sel

python的异常处理及异常类定义

python的异常处理语法和大多数语言相似: try: try块的语句... except exceptiontype1 as var:#使用as语句获得本次捕获到的异常的实例var except块语句... except exceptiontype2 as var: except块语句... except: except块语句... else: else块语句... finally: finally块语句... 执行的流程分两类: 1.try->若有异常发生->except->fina

python笔记--3--函数、生成器、装饰器、函数嵌套定义、函数柯里化

函数 函数定义语法: def 函数名([参数列表]): '''注释''' 函数体 函数形参不需要声明其类型,也不需要指定函数返回值类型 即使该函数不需要接收任何参数,也必须保留一对空的圆括号 括号后面的冒号必不可少 函数体相对于def关键字必须保持一定的空格缩进 Python允许嵌套定义函数 在定义函数时,开头部分的注释并不是必需的,但是如果为函数的定义加上这段注释的话,可以为用户提供友好的提示和使用帮助. Python是一种高级动态编程语言,变量类型是随时可以改变的.Python中的函数和自定

转:python学习——类中为什么要定义__init__()方法

学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类定义一个矩形的类,目的是求周长和面积. 1 class Rectangle(): 2 def getPeri(self,a,b): 3 return (a + b)*2 4 def getArea(self,a,b): 5 return a*b 6 7 rect = Rectangle() 8 print(rect.getPeri(3,4)) 9 print(rect.

Obj-C 语言学习 笔记(II)类定义与实现

Obj-C的类定义,与C++一样,头文件和实现文件分开. 注:本文中的例子采用Mitch Fisher, Gary Bennett, Brad Lees所编<Objective-C 初学者指南>一书中的例子.本人编译的环境为Xcode 7. 不知是否因为苹果公司在推swift,个人在.h文件里写东西的时候coding辅助跟不上.在Swift中,类的声明和实现被归在同一个.swift文件中. 头文件中类的声明 - 成员变量部分 // // RadioStation.h // RadioStati

(原创)c#学习笔记09--定义类01--c#中的类定义

第九章 定义类 本章内容: ●  如何在C#中定义类和接口 ●  如何使用控制可访问性和继承的关键字 ●  System.Object类及其在类定义中的作用 ●  如何使用VS和VCE提供的一些帮助工具 ●  如何定义类库 ●  接口和抽象类的异同 ●  结构类型的更多内容 ●  复制对象的一些重要信息 9.1  C#中的类定义 C#使用class关键字来定义类: class MyClass { // Class members. } 默认情况下,类声明为内部的,即只有当前项目中的代码才能访问它