python类介绍_Python基础介绍 | Class类
自从改用Python做数据挖掘以来,我就很少用面向对象的内容了,那啥是面向对象呢?
可以这么理解,如果我们能把代码组合成一个一个可以重复使用的类别,那么这能使程序的可复用性更高,以后只要用这个类别的东西就好,不用再重复实现这样的内容了。
Class 类
以下是类的构建,跟函数一样,前面需要用class声明
class MyFirstClass:
def __init__(self, name):
self.name = name
def greet(self):
print('Hello {}!'.format(self.name))
现在来实例化一个类
my_instance = MyFirstClass('John Doe')
print('my_instance: {}'.format(my_instance))
print('type: {}'.format(type(my_instance)))
print('my_instance.name: {}'.format(my_instance.name))
做完以上的两个,你就实现了类的构建,并成功实例化了一个类。
Methods 函数
类中的函数称为方法,使用方式和一般的函数一样
alice = MyFirstClass(name='Alice')
alice.greet()
以上的输出,当然是Hello Alice!
__init__() 此方法曾困扰了我好久
__init__()是一种特殊的方法,用于初始化类的实例,在创建类的时候调用它
class Example:
def __init__(self):
print('Now we are inside __init__')
print('creating instance of Example')
example = Example()
print('instance created')
__init__()通常用于初始化类的实例变量。这些可以作为参数列出self。为了能够在实例的生命周期中稍后访问这些实例变量,你必须将它们保存到self。self是类的方法的第一个参数,它是ni对实例变量和其他方法的访问方式。
class Example:
def __init__(self, var1, var2):
self.first_var = var1
self.second_var = var2
def print_variables(self):
print('{} {}'.format(self.first_var, self.second_var))
e = Example('abc', 123)
e.print_variables()
做数据分析的时候,或许可以将很多语句拼凑起来完成数据的分析,但当涉及到更长远的考量,如果无法提高代码的复用率,那你就得每次都重新写一遍代码 for a life long time。
__str__()
__str__()是一个特殊的方法,当类的实例转换为字符串时调用(例如,当你想要打印实例时)。换句话说,通过__str__为你的类定义方法,你可以决定类的实例的可打印版本。该方法应返回一个字符串。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return 'Person: {}'.format(self.name)
jack = Person('Jack', 82)
print('This is the string presentation of jack: {}'.format(jack))
类的变量与实例变量
类变量在该类的所有实例之间共享,而实例变量可以在该类的不同实例之间保存不同的值。
class Example:
# These are class variables
name = 'Example class'
description = 'Just an example of a simple class'
def __init__(self, var1):
# This is an instance variable
self.instance_variable = var1
def show_info(self):
info = 'instance_variable: {}, name: {}, description: {}'.format(
self.instance_variable, Example.name, Example.description)
print(info)
inst1 = Example('foo')
inst2 = Example('bar')
# name and description have identical values between instances
assert inst1.name == inst2.name == Example.name
assert inst1.description == inst2.description == Example.description
# If you change the value of a class variable, it's changed across all instances
Example.name = 'Modified name'
inst1.show_info()
inst2.show_info()
Public 与 Private变量
在python中,现在严格分离私有/公共方法或实例变量。如果一个变量是私有变量的话,惯例是使用下划线开始方法或实例变量的名称。私有意味着不应该从类外访问它。
例如,让我们考虑一下我们有一个Person具有age实例变量的类。我们希望age在创建实例后不直接访问(例如更改)。在Python中,这将是:
class Person:
def __init__(self, age):
self._age = age
example_person = Person(age=15)
# You can't do this:
# print(example_person.age)
# Nor this:
# example_person.age = 16
如果你想要age可读但不可写,那可以使用property:
class Person:
def __init__(self, age):
self._age = age
@property
def age(self):
return self._age
example_person = Person(age=15)
# Now you can do this:
print(example_person.age)
# But not this:
#example_person.age = 16
这样,你就可以对类的实例变量进行受控访问:
class Person:
def __init__(self, age):
self._age = age
@property
def age(self):
return self._age
def celebrate_birthday(self):
self._age += 1
print('Happy bday for {} years old!'.format(self._age))
example_person = Person(age=15)
example_person.celebrate_birthday()
类的继承
如果你不知道类的继承是什么,你就类比生物中的继承关系,而面向对象编程的思想,你也该去了解一下,非常简单。
class Animal:
def greet(self):
print('Hello, I am an animal')
@property
def favorite_food(self):
return 'beef'
class Dog(Animal):
def greet(self):
print('wof wof')
class Cat(Animal):
@property
def favorite_food(self):
return 'fish'
现在实例一下以上的类
dog = Dog()
dog.greet()
print("Dog's favorite food is {}".format(dog.favorite_food))
cat = Cat()
cat.greet()
print("Cat's favorite food is {}".format(cat.favorite_food))
python类介绍_Python基础介绍 | Class类相关推荐
- Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python
Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...
- python最基本的规则是什么_Python基础介绍(一)
Python基础介绍(一) 1. python是什么编程语言 编译型与解释型 编译器吧源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以极其语言来运行此程序,速度很快 ...
- python定义一个dog类 类属性有名字_python 基础 12 初识类,类方法,类属性
python 基础 12 初识类,类方法,类属性 # 面向过程 : 想要一个结果 写代码 实现计算结果 # 面向对象开发 : 有哪些角色 角色的属性和技能 两个角色之间是如何交互的 # 复杂的 拥有开 ...
- python元类_Python基础:元类
一.概述 Python虽然是多范式的编程语言,但它的数据模型却是 纯面向对象 的.与那些仅在语法层面声称纯OO的编程语言(如Java)相比,Python的这种纯粹性更加深入骨髓. 在Python的世界 ...
- Python OOP:面向对象基础,定义类,创建对象/实例,self,创建多个对象,添加对象属性,访问对象属性,__init__方法,带参数的__init__,__str__方法,__del__方法
一.理解面向对象 面向对象是⼀种抽象化的编程思想,很多编程语⾔中都有的⼀种思想. ⾯向对象就是将编程当成是⼀个事物,对外界来说,事物是直接使用的,不用去管他内部的情况.⽽编程就是设置事物能够做什么事. ...
- python中exception类的_Python自定义一个异常类的方法
如何实现自定义一个异常 python内置了许多异常类,为编写代码划定红线,才使调试代码时能及时发现错误.那么我们编写一个模块也可以为使用此模块者划定红线,来约束使用者可用哪些数据,这就需要自定义异常类 ...
- python系列教程_python基础学习系列教程2-进阶之路中绕不开的知识点。
本文是在上一篇的基础上编写的,若要查看见:雨滴测试:python基础系列教程1-可能是你见过的最通俗易懂的教程zhuanlan.zhihu.com 五. python函数 所谓的函数,就是具有特定功 ...
- python的基本原理_python基础1(理论基础)
1.python是什么语言 2.python的发展史 3.python2与python3的区别 4.python的语言类型 5.python的优缺点 6.IDLE是什么 7.变量是什么 一.pytho ...
- python @修饰符_Python基础(面向对象之类成员与修饰符)
本篇将介绍Python 类的成员.类成员修饰符.类的特殊成员. 类的成员可以分为三大类:字段.方法.属性 1.字段: 也可理解为变量,分为: 普通字段:保存在对象中,访问时通过"对象.字段名 ...
最新文章
- android开发之动画的详解 整理资料 Android开发程序小冰整理
- [java]窗口的创建
- 新手提升JSP技术能力的一点建议-调试篇
- 查看cpu使用率_腾讯游戏开发工程师:Linux 机器 CPU 毛刺问题排查
- 前端学习(3253):vs code中组件化编码
- windows环境下nginx的入门配置跳转tomcat
- linux 中阻塞与非阻塞 同步与异步
- LeetCode OJ:Combination Sum III(组合之和III)
- MYSQL5.7---ONLY_FULL_GROUP_BY 异常处理
- 凯尔卡C68全球版汽车电脑诊断仪
- James McCrae
- Google搜索简单介绍
- 动手深度学习PyTorch(三)模型选择、欠拟合和过拟合
- 【Windows远程连接】登录显示密码过期
- E45: ‘readonly‘ option is set (add to override) 解决方法
- 简单爬取京东商品名称、价格(仅供学习)
- 我的Python心路历程 第十期 (10.10 股票实战可视化历史趋势)
- Django 创建项目app
- 深度分析游戏中的随机概率
- KDA的新宠儿,金贝KD6,更大算力,探索无限可能