python中的类

本文介绍了Python中的面向对象编程思想,包括类与对象的创建、类属性、类方法、静态方法的定义与使用,以及动态绑定属性和方法的概念。通过示例详细解释了如何创建类、实例化对象,并展示了类属性、类方法和静态方法的区别。同时,讨论了对象的动态属性绑定特性,展示了在程序运行时为对象添加属性和方法的可能性。
摘要由CSDN通过智能技术生成

目录

1.两大编程思想

2.类与对象的创建方法

① 创建类的语法

 ②类的组成

③对象的创建

3.类属性,类方法,静态方法

4.动态绑定属性和方法


1.两大编程思想

2.类与对象的创建方法

:类别,是多个类似事物组成的群体的统称,能够帮助我们快速理解和判断失误的性质。

数据类型:不同的数据类型属于不同的类,使用内置函数type()可以查看其数据类型。

对象:100,90等都是int类之下包含的相似的不同各例,这些个例专业术语称为实例或对象。.

python中一切皆对象

① 创建类的语法

class 类名(这里的类名要采用驼峰输入法:

例如:

"""------类的创建方法------"""

class Student:  # Student 为类的名称(类名),由一个由或多个单词组成,每个单词的首字母大写,其余小写
    pass




print(id(Student))  # 2692481756656
print(type(Student))  # <class 'type'>
print(Student)  # <class '__main__.Student'>    ## 可以看出,这里的Student是一个类对象

 ②类的组成

        类属性:直接写在类里的变量称为类属性

        实例方法:在类里面直接定义

        静态方法:使用staticmethod进行修饰

        类方法:使用classmethod进行修饰

        初始化方法:使用--int--定义

'--------python中的类------------'
# 创建类的语法
class Student:  # Student是类名,类名由一个或多个单词组成,每个单词的首字母要大写,其余字母小写
    native_pace = '天水'  # 直接写在类里的变量称为类属性
    ########在类之外定义的成为函数,在类之内定义的称为方法

    # 初始化方法
    def __int__(self, age, name):
        self.name = name  # self.name成为实例属性,这里进行了一个赋值的操作,将局部变量的name的值赋给实体属性
        self.age = age

    # 实例方法
    def fun(self):  # 这里传入的参数为self
        print('你在干什么?')

    # 静态方法(使用staticmethod修饰称为静态方法)
    @staticmethod
    def method():  # 这里面是不允许有参数的
        print('使用staticmethod修饰,所以是静态方法')

    # 类方法(使用classmethod修饰为类方法)
    @classmethod
    def cm(cls):  # 传入的参数为cls
        print('使用classmethod修饰为类方法')

③对象的创建

        对象的创建又叫做类的实例化

        语法为:       实例名=类名()

'--------python中的类------------'
# 创建类的语法
class Student:  # Student是类名,类名由一个或多个单词组成,每个单词的首字母要大写,其余字母小写
    native_pace = '天水'  # 类属性

    def __init__(self, name, age):
        self.name = name
        self.age = age
    def fun1(self):
        print('你在干什么?')

"#  实例对象"
stu1 = Student('张三', 20)  # 创建Student类的对象
"""Student是类对象,根据类对象创建出来的就是实例对象stu1 """
# 这两种代码相同,都是调用Student中的fun1方法
stu1.fun1()  # 你在干什么?..  对象名.方法名()
Student.fun1(stu1)  # 你在干什么?  类名.方法名(类的对象)
print(stu1.name, stu1.age)  # 张三 20

3.类属性,类方法,静态方法

类属性:类中方法外的变量成为类属性,被该类的所有对象所共享

类方法:使用@classmethod修饰的方法,使用类名直接访问的方法

静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法

class Student:  # Student 为类的名称(类名),由一个由或多个单词组成,每个单词的首字母大写,其余小写
    native_pace = '天水'  # 直接写在类里的变量,称为类属性

    @classmethod
    def cm(cls):
        print('类方法通过使用@classmethod修饰的,有默认参数cls')

    @ staticmethod
    def method():
        print('静态方法是通过使用staticmethod修饰的,静态方法是没有默认参数的')
        
    def __init__(self,name,age):
        self.name = name
        self.age = age
                
print(Student.native_pace)  # 天水
stu1 = Student('张三', 20)
stu2 = Student('李四', 30)
print(stu1.native_pace)  # 天水
print(stu2.native_pace)  # 天水
# 如果这里将天水修改为秦州,全部就改为了秦州
Student.native_pace = '秦州'
print(stu1.native_pace)  # 秦州
print(Student.native_pace)  # 秦州
print('------------------------------------------------------')
'''###类方法的使用###'''
# 类方法的使用方式是通过类名调用的,调用的时候虽然定义的有参数self,但调用不用填
Student.cm()
print('------------------------------------------------------')
'''####类方法的使用####'''
Student.method()
# 静态方法的使用方法也是通过类名调用的

# print(id(Student))  # 2692481756656
# print(type(Student))  # <class 'type'>
# print(Student)  # <class '__main__.Student'>    ## 可以看出,这里的Student是一个类对象
#

4.动态绑定属性和方法

python是动态语言,在创建对象之后,可以动态地绑定属性和方法

'------动态绑定属性和方法-------'


class Student:
    def __init__(self, name, age):  # 定义初始化方法
        self.name = name   # 将局部变量的值赋给实例变量
        self.age = age

    def fun1(self):  # 定义fun1方法
        print(self.name+'在吃饭')


stu1 = Student('张三', 20)  # 是Student的实例对象
stu2 = Student('李四', 30)  # 是Student的实例对象
# 一个Student类可以创建N多个Student类的实例对象,每个实例对象的属性值可以相同也可以不相同。
# 例如给Stu2添加一个性别
stu2.gender = '女'
print(stu2.name, stu2.age, stu2.gender)
# print(stu1.name, stu1.age, stu1.gender) # 这里会报错,因为只有stu2具有gender属性
"""
这里的stu1和stu2都能够使用fun1()方法
"""
stu1.fun1()
stu2.fun1()

## 定义在类之外
def show():
    print('这是定义在类之外的称为函数')
stu2.show = show  # 将定义的函数绑定在stu2上,原先是show函数,绑定之后就是show方法
stu2.show()


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值