专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

python中如何定义类_CSS学习

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/4 1:11:54       共计:3621 浏览

python中如何定义类?

Python是一门面向对象的编程语言,当然少不了类与对象!在学会用Python定义一个类之前,我们当然得首先了解一下类与对象的基本概念以及包含的内容。

Python类的基本概念

Python的类是用关键字class,一个类中,一般包含有数据成员和方法。

数据成员,其实就是一个变量,有属于类的变量,也有属于某个方法的实例变量;

方法,就是函数,在Python中是用的关键字def,方法还可以分为三种类型:普通方法、类方法、静态方法,稍后细讲。

上面的代码,我定义了一个类Person,注意类名的首字母最好大写

定义了三个成员变量:sex是在类下面定义的,name和age是在类的构造函数__init__中定义的,这两种方式都能达到定义成员变量的目的,不过在构造函数中定义的成员变量,可以在构造对象的时候就赋值,而单独的成员变量要修改,需要给出一个方法才行,这就是一点区别

定义了一个方法: go_to_school,这个方法里面定义了一个变量is_ok(注意,这个is_ok是不能在其他地方使用的,属于方法的局部变量)

注意:参数self代表类的实例,而非类,类的方法和普通的函数最明显的区别就是有一个额外的参数,使用self可以在类中调用类的成员变量和方法。

上面就是我们使用Person类创建的对象,然后调用go_to_school方法,结果如下

可以看到,创建对象的参数写法分了三种方式,这与函数的调用比较类似,毕竟,创建对象就是在调用Person类的构造函数__init__

上面就是Python中类的基本定义和基本使用,当然,还有比较进阶一点的知识,比如类的继承、方法重写、私有变量和方法、静态和类方法、运算符重载、内部类等!这里就简单的提一些常用的。

Python类的继承

Python是面向对象的,所以当然支持类的继承,而且还支持多继承。继承的语法是在类名的后面加括号,写入被继承的父类。

例如:class Student(Person):

这样,Student类(称作子类)就继承了Person类(称为父类),子类也自动拥有了父类的成员变量和方法,继而可以对父类的方法进行修改(即方法重写),还可以添加特属于子类的新方法。

如上,就是具体的类继承例子,注意super的用法,它是调用父类的构造函数,且传入的参数很特别,是子类的名称+self关键字,其实super主要是用来多继承的,单继继承的时候完全可以直接使用类名调用父类方法。

不过,由于Python中类的继承用的并不多,何况是多继承!所以可以了解一下,用到的时候再查资料也成!

另外,上面还展示了父类方法go_to_shcool的重写。

类的方法

关于类的方法,知识点还是挺多的,首先:

私有方法:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类地外部调用。比如:

同理,两个下划线开头的成员变量也是私有的,称私有属性,只能在类内部调用。

另外,类还有一些专有方法,常见的如下:

使用dir()函数可以查看类和对象的所有属性与方法。

最后,我们来说一下类的静态方法(时常会用到)。何为静态,就是不需要创建对象,直接使用类名调用即可。

对应的,还有一种使用不多的类方法,它传递的参数是类,也就是class,在一般使用中参数为cls,这个cls和self的地位一致,不过self代表的是实例化后的对象,cls是代表的类本身。

定义了一个类TestMethod,它继承自基类object(其实,默认就是这样,所有类都继承自object,不用写都行)

定义了常规方法foo、静态方法static_foo、类方法class_foo,注意他们上面的@开头的声明,这是Python中的装饰器,具体知识点不在这里讨论,不过见名知意,一个代表静态,一个代表类方法。

然后我们执行起来

可以看到执行结果为:

其中要说明的是,静态方法和类方法都可以直接使用类名来调用。

就分享这么多,希望读者有所收获!谢谢!

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:海尔茶吧机怎么调温度_CSS学习 | ·下一条:如何选定区域录制电脑屏幕_CSS学习

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有