python学习(5)面向对象编程

简介:

1.定义类与创建实例

class关键字定义类,类名后 跟括号,括号中是继承的类的类名,没有继承的也要从object类继承。

class Person(object):

Pass

创建类的实例用: 类名+()。

xiaoming = Person()

xiaohong = Person()

Python是动态语言,实例的属性也是可以直接就加的,像下面这样:

xiaoming = Person()

xiaoming.name = 'Xiao Ming'

2.初始化

定义类时可以用__init__()方法进行初始化,该方法的第一个参数必须是self(习惯上这样),后面可以自由添加参数。

class Person(object):

    def __init__(self, name, gender, birth):

        self.name = name

        self.gender = gender

        self.birth = birth

3.访问限制

双下划线开头(__)的属性无法被外部访问。

"__xxx__"的形式定义的为特殊属性,可以被外部访问。

4.类属性

绑定在类上的属性为类属性,类属性有且只有一份。

class Person(object):

address = 'Earth'

访问时不需要创建实例:

print Person.address

当实例属性与类属性同名时,实例属性的优先级高,类属性被屏蔽。

5.实例方法

实例方法就是在类中定义的函数,其第一个参数永远都是self,指向调用该方法的实例本身。调用时self不需要手动传入。

class Person(object):

    def __init__(self, name):

        self.__name = name

    def get_name(self):

        return self.__name

p1 = Person('Bob')

print p1.get_name() 

python中方法也是属性,可以动态的添加到实例上,须用到types.MethodType()方法。

import types
def pri(self):
    print self
class D(object):
    pass
d = D()
d.pri = types.MethodType(pri, d, D)
d.pri()

6.类方法

通过在方法定义前标记一个@classmethod,把该方法将绑定到类上。类方法第一个参数传入类本身,不能使用任何实例属性。

class Person:

@classmethod #类方法

    def classMethod(cls):

        print("class method") 

p = Person("Sam")

p.classMethod()

Person.classMethod()

输出:

class method

class method

目录
相关文章
|
26天前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
209 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
23天前
|
机器学习/深度学习 人工智能 架构师
Python学习圣经:从0到1,精通Python使用
尼恩架构团队的大模型《LLM大模型学习圣经》是一个系统化的学习系列,初步规划包括以下内容: 1. **《Python学习圣经:从0到1精通Python,打好AI基础》** 2. **《LLM大模型学习圣经:从0到1吃透Transformer技术底座》**
Python学习圣经:从0到1,精通Python使用
|
26天前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
302 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
29天前
|
开发者 Python
Python学习九:file操作
这篇文章是关于Python文件操作的详细教程,包括文件的打开、读写、关闭,以及文件备份脚本的编写和文件定位操作。
17 2
|
29天前
|
Java C# Python
Python学习七:面向对象编程(中)
这篇文章是关于Python面向对象编程的中级教程,涵盖了析构函数、对象的三大特征(封装、继承、多态)、类属性与实例属性、以及类方法与静态方法的对比。
21 2
|
29天前
|
设计模式 安全 JavaScript
Python学习八:面向对象编程(下):异常、私有等
这篇文章详细介绍了Python面向对象编程中的私有属性、私有方法、异常处理及动态添加属性和方法等关键概念。
20 1
|
23天前
|
机器学习/深度学习 人工智能 架构师
Python学习圣经:从入门到精通Python,打好 LLM大模型的基础
Python学习圣经:从0到1精通Python,打好AI基础
|
25天前
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
49 0
|
28天前
|
Python
python学习之旅(基础篇看这篇足够了!!!)(下)
python学习之旅(基础篇看这篇足够了!!!)(下)
26 0
|
28天前
|
存储 程序员 Python
python学习之旅(基础篇看这篇足够了!!!)(上)
python学习之旅(基础篇看这篇足够了!!!)(上)
33 0