Python类的语法和关键字
类的关键字是class
语法为:
class 类名 (类名的规范是:数字、字母、下划线组成,不能以数字开头,首字母大写,驼峰命名法)
#类属性:放在类里面的变量值,比如a=1这种
#类方法:写在类里面的函数
一般类里面就会包含这两种属性
class BoyFriend:
#类属性
height=175
weight=130
money="500万"
#类方法or类函数
def cooking(self):#self表示实例方法
print("男朋友要会做饭")
def earn(self):
print("男朋友月薪是3万")
@classmethod
def swimming(cls):#cls自己本身,与self类似
print("男朋友还要回游泳")
#调用类
bf=BoyFriend()
bf.cooking()
类里面的方法分为三种
第一种:实例方法:以为着这个方法,只能实例来调用
例:
BoyFriend.cooking()
不创建实例,就会报错,报错如下:
TypeError: cooking() missing 1 required positional argument: ‘self’
缺少位置参数
第二种:类方法 @classmethod
用这种就不需要创建实例了,当然创建也可以
例:
BoyFriend.swimming()
这样就不会报错,可以正常打印
第三种:静态方法 @staticmethod
相同点和不同点:
实例方法self 类方法cls 静态方法(普通方法,调用不调用都可以)
1.这三种方法的共同点:
实例和类名都可以直接调用
2.不同点:
实例方法:静态发法和类方法不可以调用类里面的属性值,如果要用参数,必须要自己传递参数:
class BoyFriend():
#类属性
height=175
weight=130
money="500万"
#类方法or类函数
def cooking(self):
return (self.height+"男朋友要会做饭")#这个基㐓直接调用
@classmethod
def swimming(cls):#cls自己本身,与self类似
print(cls.height+"男朋友还要回游泳")#这个用了就会报错
3.什么时候可以定义为类方法和静态方法
即的那个你的某个函数与其他的类函数、类属性没有任何关系是就可以定义
初始化函数:无返回值return
class BoyFriend():
def __init__(self, name,age):#一般不穿动态参数和关键字参数
self.name=name
self.age=age
#是一个实例方法,可以调用它,提高这个类的复用性。
def cooking(self):
return (self.name+"男朋友要会做饭")
def earn(self):
return ("男朋友月薪是3万")
@classmethod
def swimming(cls):#cls自己本身,与self类似
print(str(cls.name)+"男朋友还要回游泳")
@staticmethod
def sing():
print("男朋友还要会唱歌")
bf1=BoyFriend("joke","18")
bf2=BoyFriend("fluse","25")
print(bf1.cooking(),bf1.earn())
练习题:创建一个名为user的类,其中包含属性first_name和last_name,还有用户简介通常会存储的其他几个属性。在类user中定义一个名为describe_user()的方法,它打印用户信息摘要;再定义一个名为greet_user()的方法,它向用户发出个性化的问候。创建多个标识不同用户的实例,并对每个实例都调用上述两个方法