python的基础语法(二)

本文详细讲解了Python中类方法的两种调用方式,包括实例方法和类方法的使用,以及如何通过实例和类名进行调用。同时,深入探讨了参数赋值规则,属性的创建与修改,并介绍了__dict__和__class__的用法。
摘要由CSDN通过智能技术生成

python的基础语法(二)

python类方法的调用:
1、实例.实例方法名(调用传参)
2、类名.实例方法(实例,调用传参)

class Human:
    age = 18
    money=123
    def eat(self,name,s):
        print("%s正在吃%s" % (name,s))
    @classmethod
    def func(cls):
        print("类方法被调用")
xm = Human()        #创建一个对象
xm.eat("小明","饭")        #调用对象本身的方法  实例.实例方法名(调用传参)
Human.func()            #利用方法直接调用方法
Human.eat(xm,"小明","饭")      #类名.实例方法(实例,调用传参)

在这里插入图片描述
self是把参数绑定,相当于java的this
当写了@classmethod时可以直接用类名调用方法

参数赋值的规则
首次为属性赋值是创建此属性
再次赋值就是改变属性的绑定关系

class Human:
    def a(self,name):
        self.n=name
    def printf(self):
        print(self.n)
hu=Human()
hu.a("sadf")
hu.printf()

输出结果为:
在这里插入图片描述
当参数第一次赋值时就自动创建

参数的修改

class Student:
    name="sadf"
    age=81
    score=81
    def __init__(self,name,age,score):
        self.n = name
        self.a = age
        self.s = score
    def set_score(self,score):      #修改对象成绩
        self.s = score
    def show_info(self):
        print("名字:%s    年龄:%s   成绩:%s" % (self.n,self.a,self.s))
st = Student("fang",18,81)
st.show_info()
st.set_score(18)
st.show_info()

输出结果为:
在这里插入图片描述
先写一个构造方法实现对象创建时自动设置属性,self.属性 是当前类的属性,当在类外进行参数的赋值,而输出方法不用self时就找不到对应的属性,所以必须加上。当在方法外用对象.属性 进行赋值修改,改变的是此对象的属性。

__dict__的用法:
显示一个类的所有属性

class Student:
    name="sadf"
    age=81
    score=81
print(Student.__dict__)

在这里插入图片描述

__class__的用法
这个有点类似于type()

class student:
    def __init__(self,name):
        self.name=name
stu = student("小明")
print(type(stu),type(student))
print(stu.__class__, student.__class__, stu.__class__.__class__)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值