您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python面向对象之类和对象

51自学网 2022-02-21 10:45:31
  python
这篇教程Python面向对象之类和对象写得很实用,希望能帮到您。

定义类

  • 所有类名首字母要求大写,多个单词时遵循驼峰命名法
  • 所有未定义父类的类都继承object

格式:class 类名[(父类)]:

#两种方式意思相同class Person:    pass class Person(object):    pass

定义类和属性

name、age、subject就是类属性

class Student:    #类属性    name = ''    age = 0    subject = []

类中方法

对象方法(普通方法)

格式:def 方法名(self[,parm1,parm2...]):    pass

self就是对象本身

class Student:    # 类属性    name = 'student'    age = 0    subject = []   # 普通方法    def study(self):        print(self.name, '正在学习...') xiaoming = Student()xiaoming.name = 'xiaoming'xiaoming.study() 

------------
输出:
xiaoming 正在学习...

class Student:    # 类属性    name = 'student'    age = 0    subject = []   # 普通方法    def study(self, name):        print(name, '正在学习...') s1 = Student()s1.study('xiaohong') 

----------------
输出:
xiaohong 正在学习...

类方法

格式:@classmethoddef 方法名(cls):    pass
  • 类方法使用@classmethod装饰器
  • 对象方法传入的是self,类方法传入的是cls
  • 类方法可以直接用类调用,或者可以用类的实例(对象)调用
class Dog:    dog_type = '阿拉斯加'   def __init__(self, nickname):        self.name = nickname   def dog_run(self):        print('{}在公园里跑.看起来是一只{}.'.format(self.name, self.dog_type))   @classmethod    def dog_sit(cls):        print(cls.dog_type, '很乖,坐下了') dog1 = Dog('肉丸')dog1.dog_type = '小泰迪'dog1.dog_run()Dog.dog_sit() 

--------------
输出:
肉丸在公园里跑.看起来是一只小泰迪.
阿拉斯加 很乖,坐下了

静态方法

  • 静态方法使用装饰器@staticmethod
  • 静态方法没有参数
  • 当方法跟类属性和对象属性都没有关系的时候,使用静态方法
  • 支持对象和类名直接调用
class Dog:    def __init__(self, nickname):        self.name = nickname   @staticmethod    def dog_sit():        print('很乖,坐下了') dog1 = Dog('肉丸')dog1.dog_sit()Dog.dog_sit() ---------------------

输出:
很乖,坐下了
很乖,坐下了

魔术方法

格式:def __方法名__(self):    pass

__init__() 构造函数

  • 如果没有__init__。直接利用类向内存申请一个和类一样的空间,给到对象。
  • 如果有__init__。利用类向内存申请一个和类一样空间,内存空间(self)传递给__iniy__,执行__init__的函数。最后将内存空间给到对象。

对象

创建对象

格式:对象名 = 类名()

class Student:    #类属性    name = ''    age = 0    subject = [] xiaoming = Student()

对象属性

  • 当创建了对象时,对象会继承类的属性。获取属性的时候,也是从类中获取属性。
  • 当对默认的类属性赋值后(对象名.属性 = xxxx),属性才会变成对象属性。
class Student:    # 类属性    name = 'student'    age = 0    subject = [] xiaoming = Student()print('类属性:', xiaoming.name)  # 此时是从类中获取的类属性xiaoming.name = 'xiaoming'  # 因为赋值了,此时变成了对象属性print('对象属性:', xiaoming.name) -------------

输出:
类属性: student
对象属性: xiaoming

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注51zixue.net的更多内容!


如何将Python字符串转换为JSON的实现方法
OpenCV图像处理之七种常用图像几何变换
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。