类对象 支持两种操作:属性引用和实例化
属性引用 使用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
以下是我最后从官方文档中得到的帮助。
这是我的示例
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 :)