类的定义和使用(python)

一、定义一个类

格式:

class 类名(建议首字母大写):

        pass

class Student:#定义了一个Student类
    age=18
    def __init__(self,name,hight):
        self.name=name
        self.hight=hight

二、定义属性

(一)动态绑定属性

class Student:
    def get(self):
        print(self.name,"今年18岁了。")
tom=Student()#设立实例对象tom
tom.name="Tom"#用动态绑定属性name
tom.get()#调用方法get()
结果
Tom 今年18岁了。

(二)属性的类别

1.类属性
class Student:
    age=18#类属性
    def __init__(self,name,hight):
        self.name=name
        self.hight=hight
2.实例属性(利用构造函数得出的属性为实例属性)
class Student:
    age=18
    def __init__(self,n,h):#构造函数
        self.name=n
        self.high=h
#name和high都为实例属性

三、方法

(一)实例方法(一般类中定义的方法默认都是实例方法)

class Student:
    age=18#类属性
    def __init__(self,n,h):
        self.name=n
        self.high=h
    def talk(self):#实例方法
        return "我叫{},今年{}岁,身高为{}".format(self.name, Student.age, self.high)
    

(二)类方法(与实例方法相似,必须含有cls这个参数,和@classmethod修饰符

格式:

@classmethod

def 函数名(cls):

        pass(一般用类的属性来编写)

class Student:
    age=18
    def __init__(self,n,h):
        self.name=n
        self.high=h
    def talk(self):
        return "我叫{},今年{}岁,身高为{}".format(self.name, Student.age, self.high)
    @classmethod
    def put(cls):#类方法
        print(cls.age)#类方法一般用类的属性(而不使用实例属性)

(三)类静态方法(没有像self、cls的参数,使用@staticmethod修饰符)

格式:

@staticmethod

def 函数名():

        pass(无法调用任何类属性和类方法)

class Student:
    age=18
    def __init__(self,n,h):
        self.name=n
        self.high=h
    def talk(self):
        return "我叫{},今年{}岁,身高为{}".format(self.name, Student.age, self.high)
    @classmethod
    def put(cls):
        print(cls.age)
    @staticmethod
    def test():#类静态方法
        print("Hello")

四、调用方法

(一)在(类)方法里面调用属性

1.调用类属性格式:

类名.调用的属性名

class Student:
    age=18#类属性
    def __init__(self,n,h):
        self.name=n
        self.high=h
    def talk(self):
        return "我叫{},今年{}岁,身高为{}".format(self.name, Student.age, self.high)
#                                                                |
#                                                          此处调用了类属性
2.调用实例属性格式:

该方法的参数(self/cls).属性名

class Student:
    age=18#类属性
    def __init__(self,n,h):
        self.name=n
        self.high=h
    def talk(self):
        return "我叫{},今年{}岁,身高为{}".format(self.name, Student.age, self.high)
#                                                    |                        |
#                                              调用了实例属性             调用了实例属性

(二)在(类)方法里面调用该类里面的其它方法

格式:类名.类方法

class Student:
    age=18
    def __init__(self,n,h):
        self.name=n
        self.high=h
    def talk(self):
        return "我叫{},今年{}岁,身高为{}".format(self.name, Student.age, self.high)
    def look(self):
        return Student.talk(self)#调用了已经定义好的talk方法

(三)在类外部调用属性

1.调用类属性格式:

类名.类属性名

变量=类名(有参数则传参数)##实例化

   变量.类属性名

class Student:
    age=18#类属性
    def __init__(self,n,h):
        self.name=n
        self.high=h
    def talk(self):
        return "我叫{},今年{}岁,身高为{}".format(self.name, Student.age, self.high)

print(Student.age)#第一种方法
s=Student("Lihua",180)
print(s.age)#第二种方法
#结果
18
18

2.调用实例属性格式:

变量=类名(有参数则传参数)##实例化

变量.实例属性名

class Student:
    age=18
    def __init__(self,n,h):
        self.name=n#实例属性
        self.high=h#实例属性
    def talk(self):
        return "我叫{},今年{}岁,身高为{}".format(self.name, Student.age, self.high)

s=Student("Lihua",180)
print(s.name)#调用实例属性
#结果
Lihua

(四)在类外部调用类和实例方法

格式:

①类名.类/实例方法名

②变量=类名(有参数则传参数)

变量.类/实例方法名

class Student:
    age=18
    def __init__(self,n,h):
        self.name=n
        self.high=h
    def talk(self):#实例方法
        return "我叫{},今年{}岁,身高为{}".format(self.name, Student.age, self.high)
    @classmethod
    def put(cls):#类方法
        return cls.age
    @staticmethod
    def test():#类方法
        return "Hello"
#方法一
print(Student.put())
print(Student.test())
#因为实例方法包含一些参数没有传入,所以无法调用
#方法二
s=Student("Lihua",180)
print(s.talk())
print(s.put())
print(s.test())
#结果
18
Hello
我叫Lihua,今年18岁,身高为180
18
Hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值