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__)