1.类class与实例instance
类是抽象的,实例是具体的。
用类:
bike1 = Bike("Univega Alpina, orange",Condition.OKAY,sale_price = 500,cost = 100)bike1.service(spent=130, sale_price=600) # cost=130, sale_price=600print(bike1.sale_price) # sale price = 600bike1.sell() # profit = 470
bike1是个实例,Bike是个类。Bike可以调用。
私有化
模块化
2.Create class
2.1创建类
class Circle(object): # 创建Circle类,Circle为类名pass # 此处可添加属性和方法
命名:首字母大写,驼峰规则。
2.2创建实例
circle1= Circle()circle2= Circle()
2.3类的属性
类的属性分为实例属性与类属性两种。实例属性用于区分不同的实例;类属性是每个实例的共有属性。
2.3.1类属性:
class Myclass:"""hi"""languange='python'version='3.9'def hello(self):#可以放函数print('xxx')
是共有属性,直接写上的。也可以放共有的函数。
类和类属性:
Myclass.languange
Myclass.hello()
实例和类属性:
实例赋值:my_obj=Myclass("Java","1.4")
实例引用:my_obj.language
实例运行函数:my_obj.hello
2.3.2实例属性:
__init__(self)方法
class Circle(object): # 创建Circle类def __init__(self, r): # 初始化一个属性r(不要忘记self参数,他是类下面所有方法必须的参数)self.r = r # 表示给我们将要创建的实例赋予属性r赋值
3.魔术方法
+
_add__
len()
__len__
str()
__str__()
==
__eq__()
class Number:def __init__(self,number):self.num=numberdef __add__(self,other):return Number(self.num+other.num)def __str__(self):return f"Number({self.num})"def __repr__(self):return str(self)