最近要用python做个明日方舟白嫖党的抽卡模拟,然而类的使用有点忘得差不多,但这方面的内容放在QQ空间,很不方便查阅,所以我把它整理贴在这。
self的用法
>>> class Ball():
def setName(self,name):
self.name = name
def kick(self):
print(‘我叫%s,该死的谁踢我’% self.name)
>>> a = Ball()
>>> b = Ball()
>>> a.setName(‘篮球’)
>>> b.setName(‘足球’)
>>> a.kick()
我叫篮球,该死的谁踢我
>>> b.kick()
我叫足球,该死的谁踢我
__init__构造函数(私有成员)
>>> class Ball():
def __init__(self,name):
self.name = name
def kick(self):
print(‘我叫%s,该死的谁踢我’% self.name)
>>> a = Ball(‘土豆’)
>>> a.kick()
我叫土豆,该死的谁踢我
又如:
>>> class Person():
__name = ‘猪鼻’
def getName(self):
return self.__name
>>> p = Person()
>>> p.__name
Traceback (most recent call last):
File “<pyshell#32>”, line 1, in
p.name #在变量后面加,就变成私有成员,无法改变,可以避免别的类读取本类的变量,防止代码污染
AttributeError: ‘Person’ object has no attribute ‘__name’
>>> p.getName() #可以通过函数访问出来
‘猪鼻’
继承
>>> class Parent():
def hello(self):
print(‘正在调用父类的方法’)
>>> p = Parent()
>>> p.hello()
正在调用父类的方法
>>> class Child(Parent):
def hello(self):
print(‘正在调用子类的方法’)
>>> c = Child()
>>> c.hello()
正在调用子类的方法
类,类对象,实例对象
class Car():
price = 10000
def _init_(self,c):
self.color = c
>>> car = Car(‘red’) #实例化对象
>>> car.color
‘red’
>>> Car.name = ‘QQ’ #动态增加类的属性
>>> car.name
‘QQ’
>>> car.name = ‘ff’
>>> car.name
‘ff’
>>> Car.name
‘QQ’ #改变实例化对象,类对象不会变
>>> car1 = Car(‘blue’)
>>> Car.name = ‘HHHH’
>>> car.name
‘ff’
>>> car1.name
‘HHHH’ #实例对象没有修改时候,改变类对象会对实例对象有改动