类对象支持两种操作:属性引用和实例化
属性引用使用用于 Python 中所有属性引用的标准语法:obj.name。有效的属性名称是创建类对象时类名称空间中的所有名称。因此,如果类定义如下所示:
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
那么MyClass.i和MyClass.f是有效的属性引用,分别返回一个整数和一个函数对象。类属性也可以赋值,所以可以通过赋值来改变MyClass.i的值。 __doc__ 也是一个有效属性,返回属于该类的文档字符串:“一个简单的示例类”。
类实例化使用函数符号。假设类对象是一个返回类的新实例的无参数函数。例如:
x = MyClass()
这实例化操作(“调用”类对象)创建一个空对象。许多类喜欢创建具有针对特定初始状态定制的实例的对象。因此,一个类可以定义一个名为__init__() 的特殊方法,如下所示:
def __init__(self):
self.data = []
当一个类定义了一个__init__()方法时,类实例化会自动为新创建的类实例调用__init__()。所以在这个例子中,一个新的、初始化的实例可以通过以下方式获得:
x = MyClass()
当然,__init__() 方法可能有更大灵活性的参数。在这种情况下,提供给类实例化运算符的参数将传递给__init__()。例如,
class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
x = Complex(3.0, -4.5)
x.r, x.i
取自官方documentation,最终对我帮助最大。
这是我的例子
class Bill():
def __init__(self,apples,figs,dates):
self.apples = apples
self.figs = figs
self.dates = dates
self.bill = apples + figs + dates
print ("Buy",self.apples,"apples", self.figs,"figs
and",self.dates,"dates.
Total fruitty bill is",self.bill," pieces of fruit :)")
当您创建 Bill 类的实例时:
purchase = Bill(5,6,7)
你得到:
> Buy 5 apples 6 figs and 7 dates. Total fruitty bill is 18 pieces of
> fruit :)