前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

面向对象之类方法(面向对象的方法是什么)

qiguaw 2024-09-18 23:17:14 资源文章 17 ℃ 0 评论

:类的使用对象,class关键字;

例如下面这样,我简单给出了两个类,学生类和动物类;

封装:类可以把各种对象放在一起,作为类的属性,通过.点运算符来调用类中封装好的对象.


属性:变量在类中称为属性,但是类中的属性不仅仅只包含变量,函数等其他的对象也可以作为类的属性.

class Student:
    class1='四七班'   #变量在类中称为属性 可以直接访问
    def name(self,name):   # 函数'name'也是类的属性,但是未经实例化,不能直接访问
        self.name=name
        print('name is ',self.name)
    def age(self,age):
        self.age=age
    def gendor(self,age):
        self.gendor=gendor
# print(Student.class1)# 可以直接访问
# print(Student.name()) ##未实例化
S1=Student()    #实例化
print(S1.name('jack'))

实例也是一个独立存放变量的空间,每个实例都是一个独立的变量空间。不同的实例之间的空间互相不可见.


未经实例化,不能直接访问

实例化之后可以访问:

一个类可以实例化出无数的对象(实例对象),python为了区分是哪个实例对象调用了方法,于是要求方法必须绑定(通过self参数)才能调用,而未实例化的对象直接调用方法就会报错;

好了,引入正题,我们每次调用对象的时候时候,都先要实例化,然后再去用实例对象去调用.这个貌似用起来比较麻烦.

类方法,或者叫静态方法

不依赖于对象,而只依赖于类本身

方法公式如下:

@classmethod

def 类方法名(cls):

pass

可以看出来,这个就不需要实例化,就可以直接调用.

类方法可以直接平级去调用类里面的属性,普通方法还需要采用self.这样操作起来更加便捷.

静态方法:

方法公式如下:

@staticmethod

def 类方法名(): ####参数不依赖于对象self,也不依赖于类cls

pass

访问类属性的时候,不用cls,直接用类名Student 去访问类

class Student:
    class1='四七班' #类属性
    @staticmethod
    def name():
        print('name is CLS 班级是>',Student.class1)
Student.name()

类方法中可以去调用静态方法

class Student:
    class1='四七班' #类属性
    @classmethod
    def name(cls):
        print('name is CLS 班级是>',cls.class1)
        cls.age()
    @staticmethod
    def age():
        print('age is 10 班级是>',Student.class1)
Student.name()

静态方法中也可以去调用类方法

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表