Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 20, 2016 16:08:00

feofs
Зарегистрирован: 2016-04-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите понять как это работает.

Добрый день.
Раньше немного писал на PHP, решил подучить Python. И сразу возник вопрос. Импортирую я модуль datetitime. В нем есть класс datetime, из которого вызывается функция today()

from datetime import *
today=datetime.today()
print ('The type of today is:', type(today))
print ('The datetime is :',today)
print ('The hour of today is :',today.hour)
Вывод:
The type of today is: <class 'datetime.datetime'>
The datetime is : 2016-04-20 15:52:32.530972
The hour of today is : 15
Тут у меня возник вопрос что все таки такое datetime.today(), как она может возвращать строку времени но при этом еще быть экземпляром класса, т.е можно обратится к его атрибутам today.hour

Офлайн

#2 Апрель 20, 2016 16:59:36

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Помогите понять как это работает.

feofs
что все таки такое datetime.today()

Вызов функции, которая возвращает объект datetime

feofs
как она может возвращать строку времени но при этом еще быть экземпляром класса, т.е можно обратится к его атрибутам today.hour

today - это объект datetime. Во втором принте у этого объекта вызывается метод __str__. Почитайте про модель данных в питоне и магические методы, в доках об этом очень хорошо написано.

Офлайн

#3 Апрель 20, 2016 18:57:46

feofs
Зарегистрирован: 2016-04-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите понять как это работает.

это что-то типа такого я так понимаю

class A:
__name='xxxx'
def set_name(self,n):
self.__name=n
return self

т.е set_name внутри класса вернет объект, но не пойму как тогда + к этому она еще и строку возвращает, прям разрыв шаблона у меня случился. Поищу магические методы, думаю в них ответ.


Офлайн

#4 Апрель 20, 2016 20:01:49

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Помогите понять как это работает.

Просто читайте про data model и все.

Офлайн

#5 Апрель 21, 2016 00:26:26

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Помогите понять как это работает.

feofs
Тут у меня возник вопрос что все таки такое datetime.today(), как она может возвращать строку времени
Она возвращает не строку, а объект, у которого есть строковое представление.
>>> class A:
...     def __init__(self, n):
...         self.n = n
...     def __str__(self):
...         return '[{}]'.format(self.n)
... 
>>> a = A(5)
>>> print(a)
[5]
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version