python-类的基础知识
2021/10/30 20:11:15
本文主要是介绍python-类的基础知识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
python-类的基础知识
- 类的定义
- 类对象
- 变量
- 类变量
- 局部变量
- 实例变量
- 类的方法
- 特殊方法
类的定义
/* class是定义类的关键字,ClassName为类的名称 */ class ClassName: // 在这里写其他内容 pass class ClassName(Object): // 在这里写其他内容 pass
这是一个最简单的类定义,在python3后类定义一般都会继承Object类,不过不继承也没有多大的问题。
类对象
类对象也称实例
// 这就是创建了一个类对象(实例),a是一个实例也是一个对象 a = ClassName()
变量
类内部里面有:类变量,局部变量,实例变量
类变量
类变量:所有类的实例化对象都同时共享类变量,也就是说,类变量在所有实例化对象中是作为公用资源存在的。
class ClassName(Object): // 定义一个类变量 name = "Tom"
类方法的调用方式有 2 种,既可以使用类名直接调用,也可以使用类的实例化(对象)调用。可以通过类名修改类变量的值,并且修改后,会影响所有的实例化的对象。
// 直接通过类名调用 print(ClassName.name) // 创建类的实例(对象) a = ClassName() b = ClassName() // 通过类的实例调用 print(a.name) print(b.name) ClassName.name = "Tim" print(a.name) print(b.name)
运行结果为:
Tom Tom Tom Tim Tim
但如果实例的类变量的值修改后,在通过类名修改变量的值,不会影响这个实例的类变量。
a = ClassName() b = ClassName() a.name = "asf" ClassName.name = "Pig" print(a.name) print(b.name) ClassName.name = "aaa" print(a.name) print(b.name)
运行结果:
asf Pig asf aaa
通过运行结果可知,在对象a改变name值后,再调用Class Name.name = "Pig"
对象a的name变量值没有改变
局部变量
局部变量:局部变量只定义在类方法内,也只能在方法内使用
class ClassName(Object): // 这是一个方法 def function(self): // 这是一个局部变量 name = "Tom"
name定义在类方法内,所以是局部变量,在外部是无法调用,只能在方法内使用。
实例变量
实例变量:以self.变量名的方式定义的变量,称为实例变量(属性)
class ClassName(Object): // 这是一个实例变量 def function1(self): self.name = "Tom" def function2(self): print(self.name)
只作用于调用方法的对象,可以在其他方法内调用。
className = ClassName() className.function()
运行结果:
Tom
如果定义在__init__()
方法中的实例变量,可以同过只能通过对象名访问。
class ClassName(Object): def __init__(): self.name = "Tom" className = ClassName() print(className.name)
运行结果:Tom
私有变量
__name
这就是私有变量,在变量前面加两个_
,self.__name
也是私用变量,私有变量在类外部无法直接进行访问。
类的方法
在类里面用def
关键字来定义方法,也叫函数。与普通方法的区别是,必须需要一个self
的参数,self
代表类自身
class ClassName(Object): def function(self,a): pass
特殊方法
1.__init__()
用来初始化类的参数一般叫构造方法
这个方法,我们一般类都会用到。
class ClassName(Object): def __init__(self): self.name = "aaa"
当类实例化时,会自动调用__init__
2.__call__()
将对象当做函数时调用。
class ClassName(Object): def __init__(self): self.name = "aaa" def __call__(self): print("aaa") c = ClassName() // 类实例化,执行了__init__()方法 c() //执行了__call__()方法
3、__get__()
类作为另一个类的属性时自动调用
class ClassName: def __init__(self): pass def __get__(self,instance, owner): print("__get__调用了") class ClassName2: a = ClassName()
运行结果:__get__调用了
等等还有很多
这篇关于python-类的基础知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30Python中''') 是什么?-icode9专业技术文章分享
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程