python 类的使用基础


# 定义一个类
class Student:
    #创建类属性

    school='SDUT'


    #构造方法
    def __init__(self,id,name,age):
        self.id=id#实例的属性
        self.name=name
        self.age=age


    def set(this, id, name):  # 定义一个设置信息的方法,this指的是当前的一个方法
        this.id = id
        this.name = name

    def show(self):  # 定义一个展示方法,无返回值
        print(self.id, self.name,self.age)


    def __str__(self):#定义一个tostring方法,注意返回是一个字符串
        return str(self.id)+str(self.name)+str(self.age)


    @classmethod
    def test(cls):#cls代表当前的类,可以随便取名
        print(cls.school)#只能调用类属性,不能调用对象属性

    @staticmethod#定义静态方法,不用写参数,这是与类方法的区别
    def test1():
        print("test1静态方法:"+Student.school)

    # @staticmethod#定义静态方法,写参数,但是调用要传入对应参数
    # def test1(cls):
    #     print("test1静态方法:"+cls.school)


#调用无参构造,创建对象
# stu = Student()
# stu.set("小", 2)#创建一个实例
# stu.age=22
# stu.show()#虽然后定义属性,但是仍然可以输出年龄,不报错

#定义了带参数的构造方法,不能调用无参构造了,会报错
stu=Student(1,2,3)
stu.show()
print(stu)#如果没有tostring方法,会打印出<__main__.Student object at 0x0000023ECAFEAC88>,加上tostring方法,可以打印出具体信息
print(Student)#打印出<class '__main__.Student'>
print(Student.school)#利用类打印类的属性
print(stu.school)#利用对象实例,打印类的属性

stu.school="xxx"
print(Student.school)#利用类打印类的属性,发现没有变化
print(stu.school)#利用对象实例,打印类的属性,发现发生了变化

Student.school="000"
print(Student.school)#利用类打印类的属性,发现变化
print(stu.school)#利用对象实例,打印类的属性,发现没有变化
print(stu)
#综上所述,改变类的属性,用类改,改对象的用对象改,类和对象都有自己的命名空间

Student.test()#类对象,调用类方法

# 关于静态方法
stu.test1()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码敲上天.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值