<a href="http://www.jianshu.com/p/54870e9541fc">总目录</a>
课程页面:https://www.codecademy.com/
内容包含课程笔记和自己的扩展折腾
Class and class syntax
Python is an object-oriented programming language, which means it manipulates programming constructs called objects. You can think of an object as a single data structure that contains data as well as functions; functions of objects are called methods.
A class is just a way of organizing and producing objects with similar attributes and methods.
一个class的例子(source: codecademy.com)
class Fruit(object):
"""A class that makes various tasty fruits."""
def __init__(self, name, color, flavor, poisonous):
self.name = name
self.color = color
self.flavor = flavor
self.poisonous = poisonous
def description(self):
print "I'm a %s %s and I taste %s." % (self.color, self.name, self.flavor)
def is_edible(self):
if not self.poisonous:
print "Yep! I'm edible."
else:
print "Don't eat me! I am super poisonous."
lemon = Fruit("lemon", "yellow", "sour", False)
lemon.description()
lemon.is_edible()
Output:
I'm a yellow lemon and I taste sour.
Yep! I'm edible.
Class Syntax:
By convention, user-defined Python class names start with a capital letter.
class Class_Name(object):
def __init__(self)
pass #pass is only a placeholder
Instantiation
【例1】
class Square(object):
def __init__(self):
self.sides = 4
my_shape = Square()
print my_shape.sides
Output:
4
【例2】
class Animal(object):
def __init__(self, name):
self.name = name
zebra = Animal("zebra")
print zebra.name
Output:
zebra
【例3】
class Province(object):
def __init__(self, name, capital, is_baoyouqu):
self.name = name
self.capital = capital
self.is_baoyouqu = is_baoyouqu
Shanghai_M = Province("Shanghai Municipality", "Shanghai", True)
Heilongjiang = Province("Heilongjiang", "Harbin", False)
Zhejiang = Province("Zhejiang", "Hangzhou", True)
print Shanghai_M.name, Shanghai_M.capital, Shanghai_M.is_baoyouqu
print Heilongjiang.name, Heilongjiang.capital, Heilongjiang.is_baoyouqu
print Zhejiang.name, Zhejiang.capital, Zhejiang.is_baoyouqu
Output:
Shanghai Municipality Shanghai True
Heilongjiang Harbin False
Zhejiang Hangzhou True
Add methods
class Province(object):
def __init__(self, name, capital, is_baoyouqu):
self.name = name
self.capital = capital
self.is_baoyouqu = is_baoyouqu
def print_capital(self):
print "%s's capital is %s." % (self.name, self.capital)
Heilongjiang = Province("Heilongjiang", "Harbin", False)
Heilongjiang.print_capital()
Output:
Heilongjiang's capital is Harbin.
class ShoppingCart(object):
写一个ShoppingCart的class,让用户可以添加和删除购物车中的物品。
class ShoppingCart(object):
items_in_cart = {}
def __init__(self, customer_name):
self.customer_name = customer_name
def add_item(self, product, price):
if product not in self.items_in_cart:
self.items_in_cart[product] = price
print "%s added" % product
else:
print "%s is already in the cart" % product
def remove_item(self, product):
if product in self.items_in_cart:
del self.items_in_cart[product]
print "%s removed" % product
else:
print "%s is not in the cart" % product
my_cart = ShoppingCart("Xiaoming")
my_cart.add_item("apple", 8)
Output:
apple added
网友评论