-
加双下划线 __ 的目的大概就是防止编码过程中试图使用实例修改类属性,加上__的话,在做这样的尝试时会报错,防止编码者在达不到目的的情况下还察觉不到错误
查看全部 -
定义类属性可以直接在 class 中定义,比如在前面的Animal类中,加入地域的类属性:
class Animal(object): localtion = 'Asia' def __init__(self, name, age): self.name = name self.age = age
此后,通过Animal()实例化的所有对象,都可以访问到localtion,并且得到唯一的结果。
dog = Animal('wangwang', 1) cat = Animal('mimi', 3) print(dog.localtion) # ==> Asia print(cat.localtion) # ==> Asia # 类属性,也可以通过类名直接访问 print(Animal.localtion) # ==> Asia
类属性也是可以动态添加和修改的,需要注意的是,因为类属性只有一份,所以改变了,所有实例可以访问到的类属性都会变更:
查看全部 -
在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性:
class Person(object): def __init__(self, name, sex, age): self.name = name self.sex = sex self.age = age
在实例化的时候,需要提供除self以外的所有参数。
xiaoming = Person('Xiao Ming', 'boy', 13) xiaohong = Person('Xiao Hong', 'girl', 14)
查看全部 -
这些属性也可以和普通变量一样进行运算。比如xiaohong长大了一岁:
xiaohong.age = xiaohong.age + 1
查看全部 -
在Python中,通过class关键字定义一个类,比如我们需要定义一个人的类。按照 Python 的编程习惯,类名以大写字母开头。因此可以这样定义:
class Person: pass
定义了类之后,就可以对类进行实例化了,实例化是指,把抽象的类,赋予实物的过程。比如,定义好Person这个类后,就可以实例化多个Person出来了。
创建实例使用类名+(),类似函数调用的形式创建:class Person(object): pass xiaohong = Person() xiaoming = Person()
查看全部 -
str() 化为字符型
查看全部 -
# Enter a code
import time
def performance(f):
def fn(*args,**kwargs):
t1 = time.time()
r = f(*args,**kwargs)
t2 = time.time()
print('call %s() in %fs' % (f.__name__, (t2-t1)))
return r
return fn
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print(factorial(10))
查看全部 -
继承查看全部
-
Python类的定义与实例化 在Python中,通过class关键字定义一个类,比如我们需要定义一个人的类。按照 Python 的编程习惯,类名以大写字母开头。因此可以这样定义: class Person: pass 注意,在这个Person类的定义里面,并没有继承任何类,除了这样定义以外,还可以有以下两种定义方式。 class Person(): pass class Person(object): pass 这三种情况有什么区别呢?在Python3中,是没有区别的,但是在Python2中,则有一定的区别。 在Python2中,对于第一种定义的方法,Person类只有有限的几个内建函数'__doc__', '__module__', 'name',而对于第二种、第三种定义的方法,则会继承Python object对象的更多的内建函数,可以更便捷的操作对象。这是Python2版本的差异。在Python3中,我们只需要知道这三种方式都可以定义一个类即可。 定义了类之后,就可以对类进行实例化了,实例化是指,把抽象的类,赋予实物的过程。比如,定义好Person这个类后,就可以实例化多个Person出来了。 创建实例使用类名+(),类似函数调用的形式创建: class Person(object): pass xiaohong = Person() xiaoming = Person() 任务 请练习定义一个动物类,并创建出两个实例dog, cat,打印实例,再比较两个实例是否相等。 index.py # Enter a code 本节编程练习不计算学习进度,请电脑登录imooc.com操作查看全部
-
什么是面向对象编程查看全部
-
面相对象查看全部
举报