class
定义一个类, 后面的类别首字母推荐以大写的形式定义,比如Calculator
class
可以先定义自己的属性,比如该属性的名称可以写为 name='Good Calculator'
class
后面还可以跟def
, 定义一个函数. 比如def add(self,x,y):
加法
self表示类中的默认参数,会被传递下去
class Calculator: #首字母要大写,冒号不能缺
name='Good Calculator' # class的固有属性
price=18
def add(self,x,y): #class的功能
print(self.name) #在类里面调用name,要写成self.name
result = x + y
print(result)
def minus(self,x,y):
result=x-y
print(result)
def times(self,x,y):
print(x*y)
def divide(self,x,y):
print(x/y)
""""
>>> cal=Calculator() # 外部调用要先如此定义
>>> cal.name # 这样调用class中的参数
'Good Calculator'
>>> cal.price
18
>>> cal.add(10,20)
Good Calculator
30
>>> cal.minus(10,20)
-10
>>> cal.times(10,20)
200
>>> cal.divide(10,20)
0.5
>>>
""""
init
class Calculator:
name='good calculator' # class的固有属性
price=18
def __init__(self,name,height,width,weight): # class的输入属性
self.name=name # 若固有属性与输入属性都存在,则固有属性无效了
# self.price=price #当init的括号中没有price时,运行报错price未定义,尽管固有属性中定义了price
self.h=height
self.wi=width
self.we=weight
self.add(1,2)
def add(self,x,y): #class的功能
print(self.name) #在类里面调用name,要写成self.name
result = x + y
print(result)
""""
# 有了init若只输入c=Calculator()会报错,要求必须输入init中定义的每个参数
>>> c=Calculator('bad calculator',17,16,15) #先执行了init中的add函数
bad calculator
3
>>> c.name
'bad calculator'
>>> c.price
18
>>> c.we
15
>>>print(c.add(10,20))
bad calculator
30
None #不知道为何这有个None
""""
class Calculator:
name='good calculator' # class的固有属性
price=18
# 当输入属性仅部分给定默认值时,要把没有默认值的参数放在 有默认值参数的左面,否则就会报错
def __init__(self,name='1',height=2,width=3,weight=4): # class的输入属性给了默认值
self.name=name
# self.price=price
self.h=height
self.wi=width
self.we=weight
b = Calculator('bad calculator',width=17) # 只输入想要修改的属性即可
c = Calculator()
print(c.name)
print(c.price)
print(c.h)
print(b.name)
print(b.price)
print(b.we)
print(b.wi)
'''
1
18
2
bad calculator
18
4
17
'''