2013-09-18 7 views
7

В чем основное отличие между class и def в python? Может ли класс на python взаимодействовать с django UI (кнопками)?Различия между `class` и` def`

+3

'класс' предназначен для занятий. 'def' для функций и методов. Прочтите любую книгу на Python, чтобы получить ответ на этот вопрос. Не имеет смысла говорить о различии между ними. – Joe

+2

Это может показаться не таким, но между ними действительно есть огромная разница. Они оба используются для организации кода, но есть много различий в том, что они делают, как они используются и почему вы их используете. Тема действительно слишком велика, чтобы легко покрывать один ответ. Вот [введение] (http://www.jesshamrick.com/2011/05/18/an-introduction-to-classes-and-inheritance-in-python/) к классам/объектам, которые вы могли бы попробовать прочитать. Когда вы понимаете широкие понятия, не стесняйтесь возвращаться и задавать больше вопросов, если вы все еще смущены. – Michael0x2a

+0

Предлагаю вам посмотреть объектно-ориентированное программирование на википедию или так, чтобы понять, что такое класс. Чтобы получить доступ к «def» из класса, вам нужно сначала создать объект этого класса, а не object.nameofdef(), который выполняет это «def» для объекта, а если вы просто сделаете «def» 'за пределами класса, он может быть выполнен на все, что вы хотите, но без привязки к определенному объекту (не уверен, что это объясняет многое, но я не знаю, как быть более ясным на этом). – usethedeathstar

ответ

3

class определяет класс.

def определяет функцию.

class Foo: 
    def Bar(self): 
     pass 

def Baz(): 
    pass 

f = Foo() # Making an instance of a class. 
f.Bar() # Calling a method (function) of that class. 
Baz() # calling a free function 
10

class используется для определения класса (шаблон, из которого вы можете создавать объекты).

def Используется для определения функции или метода. Метод похож на функцию, принадлежащую классу.

# function 
def double(x): 
    return x * 2 

# class 
class MyClass(object): 
    # method 
    def myMethod(self): 
     print "Hello, World" 

myObject = MyClass() 
myObject.myMethod() # will print "Hello, World" 

Не знаю, о части Django вашего вопроса извините. Возможно, это должен быть отдельный вопрос?

Смежные вопросы