Python学习心得类和对象

一、类

1.类:就是把事物进行区分,也就常见的思维方式——“物以群分”。

2.类是怎么来的?

由N多个对象抽取出“像”属性和行为从而归纳总结出来的一种类别。

二、在Python当中一切皆对象

1.字符串对象:hello、python、world...

字符串对象属于str字符串类型。

2.整数对象:10、20、985...

整数对象属于int整数类型。

二、自定义数据类型与创建该类的对象

1.自定义数据类型的语法结构:

class 类名():
     pass

注:类为“图纸”。

#创建一个新的类
class student():
    pass

2.创建对象的语法结构:

对象名=类名()

注:对象“具体实例”。

#将一个student类型的对象
wjl=student()
print(type(wjl))

输出:

<class '__main__.student'>

三、类的组成

1.类的组成:

2. 类的建立与其内部组成成分的调用:

class Student:
    # 类属性:定义在类中,方法外的变量
    school='XXX学校'
    #定义在类中,所以名称发生了改变

    #初始化方法
    def __init__(self,xm,age):#xm,age是方法的参数,是局部变量
        # 局部变量可以在自定义函数中出现,也可以在方法中出现
        #如果想使用xm、age这两个两个变量的值之做不到的,要想在在方法外使用这两个变量的值需要使用实例属性
        self.name=xm#左侧是实例属性,xm是局部变量,将局部变量的值xm,赋值给实例属性self.name
        self.age=age#实例的名称和局部变量的名称可以相同
        #现在还不能使用,需要创建了对象后才能使用

        #定义在类当中的函数,我们称之为方法,特点自带一个参数self
    def show(self):
        print(f'我叫:{self.name},今年:{self.age}岁了')

    #静态方法
    @staticmethod
    def sm():
        #print(self.name)
        #self.show()
        #不能调用实例属性和实例方法
        print('这是一个静态方法,不能调用实例属性,也不能用实例方法')

    @classmethod
    def cm(cls):#cls-->class的简写
        #print(self.name)
        #self.show()
        print("这是一个类方法,不能调用实例属性,也不能用实例方法")

#创建类的方法
stu=Student('wjl',18)#为什么串了两个参数,因为__init__方法中,有两个形参,self.是自带的参数,无需手动传入
#实例属性,使用对象名进行打点调用的
print(stu.name,stu.age)
print(Student.school)

#实例方法,使用对象名进行打点调用
stu.show()

#类方法,@classmethod进行修饰的方法,直接使用类名打点调用
Student.cm()

#静态方法,@staticmethod进行修饰的方法,直接使用类名打点调用
Student.sm()

四、用类去创建N多个对象

class Student:
    school = 'XXX学校'

    def __init__(self, xm, age):
        self.name = xm
        self.age = age

    def show(self):
        print(f'我叫:{self.name},今年:{self.age}岁了')

    @staticmethod
    def sm():
        print('这是一个静态方法,不能调用实例属性,也不能用实例方法')

    @classmethod
    def cm(cls):
        print("这是一个类方法,不能调用实例属性,也不能用实例方法")
#图纸画完了,就可以创建N多个对象

stu1=Student('wjl',19)
stu2=Student('w',20)
stu3=Student('j',21)
stu4=Student('l',22)

print(type(stu1))
print(type(stu2))
print(type(stu3))
print(type(stu4))

Student.school='Python学院'

#将学生对象存储到列表中
lst=[stu1,stu2,stu3,stu4]
for i in lst:
    i.show()

五、动态绑定属性和方法

每个对象的属性名称相同,但属性值不同。

可以为每个对象绑定独有的属性或方法。

class Student:
    school = 'XXX学校'

    def __init__(self, xm, age):
        self.name = xm
        self.age = age

    def show(self):
        print(f'我叫:{self.name},今年:{self.age}岁了')

    @staticmethod
    def sm():
        print('这是一个静态方法,不能调用实例属性,也不能用实例方法')

    @classmethod
    def cm(cls):
        print("这是一个类方法,不能调用实例属性,也不能用实例方法")
#图纸画完了,就可以创建N多个对象

stu1=Student('wjl',19)
stu2=Student('wjm',20)

Student.school='Python学院'

#为stu2动态绑定一个实例属性
stu2.gender='男'
print(stu2.name,stu2.age,stu2.gender)

#动态绑定方法
def introduce():
    print('stu2的动态绑定方法')
stu2.fun=introduce#这个操作是赋值不是函数的调用
#fun就是stu2对象的方法。
#调用
stu2.fun()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值